当前位置:网站首页>Reflect 机制获取Class 的属性和方法信息
Reflect 机制获取Class 的属性和方法信息
2022-07-28 11:11:00 【爱码少年】
反射机制获取类的属性和方法信息
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import org.junit.jupiter.api.Test;
public class Reflect
{
/**
* 获取属性信息
*
* @param clazz
* @see [类、类#方法、类#成员]
*/
public static void getFieldsInfo(Class<?> clazz)
{
Field[] f = clazz.getDeclaredFields();
for (int i = 0; i < f.length; i++)
{
System.out.println("\n属 性:\t" + f[i]);
System.out.println("修饰符:\t" + Modifier.toString(f[i].getModifiers()));
System.out.println("类 型:\t" + f[i].getType());
System.out.println("属性名:\t" + f[i].getName());
}
}
/***
* 获取方法信息
*
* @param clazz
* @see [类、类#方法、类#成员]
*/
public static void getMethodsInfo(Class<?> clazz)
{
Method[] m = clazz.getDeclaredMethods();
for (int i = 0; i < m.length; i++)
{
System.out.println("\n方 法:\t" + m[i].toString());
System.out.println("修饰符:\t" + Modifier.toString(m[i].getModifiers()));
System.out.println("返回值:\t" + m[i].getReturnType());
System.out.println("方法名:\t" + m[i].getName());
System.out.print("参 数:\t");
Class<?>[] p = m[i].getParameterTypes();
if (p.length == 0)
{
System.out.print("无");
}
for (int j = 0; j < p.length; j++)
{
System.out.print(p[j] + "\t");
}
System.out.println();
System.out.print("异 常:\t");
Class<?>[] e = m[i].getExceptionTypes();
if (e.length == 0)
{
System.out.print("无");
}
for (int j = 0; j < e.length; j++)
{
System.out.print(e[j] + "\t");
}
System.out.println();
}
}
@Test
public void testString()
{
Class<?> clazz = String.class;
Reflect.getFieldsInfo(clazz);
Reflect.getMethodsInfo(clazz);
}
}
运行结果
属 性: private final char[] java.lang.String.value
修饰符: private final
类 型: class [C
属性名: value
属 性: private int java.lang.String.hash
修饰符: private
类 型: int
属性名: hash
属 性: private static final long java.lang.String.serialVersionUID
修饰符: private static final
类 型: long
属性名: serialVersionUID
属 性: private static final java.io.ObjectStreamField[] java.lang.String.serialPersistentFields
修饰符: private static final
类 型: class [Ljava.io.ObjectStreamField;
属性名: serialPersistentFields
属 性: public static final java.util.Comparator java.lang.String.CASE_INSENSITIVE_ORDER
修饰符: public static final
类 型: interface java.util.Comparator
属性名: CASE_INSENSITIVE_ORDER
方 法: public boolean java.lang.String.equals(java.lang.Object)
修饰符: public
返回值: boolean
方法名: equals
参 数: class java.lang.Object
异 常: 无
方 法: public java.lang.String java.lang.String.toString()
修饰符: public
返回值: class java.lang.String
方法名: toString
参 数: 无
异 常: 无
方 法: public int java.lang.String.hashCode()
修饰符: public
返回值: int
方法名: hashCode
参 数: 无
异 常: 无
方 法: public int java.lang.String.compareTo(java.lang.String)
修饰符: public
返回值: int
方法名: compareTo
参 数: class java.lang.String
异 常: 无
方 法: public int java.lang.String.compareTo(java.lang.Object)
修饰符: public volatile
返回值: int
方法名: compareTo
参 数: class java.lang.Object
异 常: 无
方 法: public int java.lang.String.indexOf(java.lang.String,int)
修饰符: public
返回值: int
方法名: indexOf
参 数: class java.lang.String int
异 常: 无
方 法: public int java.lang.String.indexOf(java.lang.String)
修饰符: public
返回值: int
方法名: indexOf
参 数: class java.lang.String
异 常: 无
方 法: public int java.lang.String.indexOf(int,int)
修饰符: public
返回值: int
方法名: indexOf
参 数: int int
异 常: 无
方 法: public int java.lang.String.indexOf(int)
修饰符: public
返回值: int
方法名: indexOf
参 数: int
异 常: 无
方 法: static int java.lang.String.indexOf(char[],int,int,char[],int,int,int)
修饰符: static
返回值: int
方法名: indexOf
参 数: class [C int int class [C int int int
异 常: 无
方 法: static int java.lang.String.indexOf(char[],int,int,java.lang.String,int)
修饰符: static
返回值: int
方法名: indexOf
参 数: class [C int int class java.lang.String int
异 常: 无
方 法: public static java.lang.String java.lang.String.valueOf(int)
修饰符: public static
返回值: class java.lang.String
方法名: valueOf
参 数: int
异 常: 无
方 法: public static java.lang.String java.lang.String.valueOf(long)
修饰符: public static
返回值: class java.lang.String
方法名: valueOf
参 数: long
异 常: 无
方 法: public static java.lang.String java.lang.String.valueOf(float)
修饰符: public static
返回值: class java.lang.String
方法名: valueOf
参 数: float
异 常: 无
方 法: public static java.lang.String java.lang.String.valueOf(boolean)
修饰符: public static
返回值: class java.lang.String
方法名: valueOf
参 数: boolean
异 常: 无
方 法: public static java.lang.String java.lang.String.valueOf(char[])
修饰符: public static
返回值: class java.lang.String
方法名: valueOf
参 数: class [C
异 常: 无
方 法: public static java.lang.String java.lang.String.valueOf(char[],int,int)
修饰符: public static
返回值: class java.lang.String
方法名: valueOf
参 数: class [C int int
异 常: 无
方 法: public static java.lang.String java.lang.String.valueOf(java.lang.Object)
修饰符: public static
返回值: class java.lang.String
方法名: valueOf
参 数: class java.lang.Object
异 常: 无
方 法: public static java.lang.String java.lang.String.valueOf(char)
修饰符: public static
返回值: class java.lang.String
方法名: valueOf
参 数: char
异 常: 无
方 法: public static java.lang.String java.lang.String.valueOf(double)
修饰符: public static
返回值: class java.lang.String
方法名: valueOf
参 数: double
异 常: 无
方 法: public char java.lang.String.charAt(int)
修饰符: public
返回值: char
方法名: charAt
参 数: int
异 常: 无
方 法: private static void java.lang.String.checkBounds(byte[],int,int)
修饰符: private static
返回值: void
方法名: checkBounds
参 数: class [B int int
异 常: 无
方 法: public int java.lang.String.codePointAt(int)
修饰符: public
返回值: int
方法名: codePointAt
参 数: int
异 常: 无
方 法: public int java.lang.String.codePointBefore(int)
修饰符: public
返回值: int
方法名: codePointBefore
参 数: int
异 常: 无
方 法: public int java.lang.String.codePointCount(int,int)
修饰符: public
返回值: int
方法名: codePointCount
参 数: int int
异 常: 无
方 法: public int java.lang.String.compareToIgnoreCase(java.lang.String)
修饰符: public
返回值: int
方法名: compareToIgnoreCase
参 数: class java.lang.String
异 常: 无
方 法: public java.lang.String java.lang.String.concat(java.lang.String)
修饰符: public
返回值: class java.lang.String
方法名: concat
参 数: class java.lang.String
异 常: 无
方 法: public boolean java.lang.String.contains(java.lang.CharSequence)
修饰符: public
返回值: boolean
方法名: contains
参 数: interface java.lang.CharSequence
异 常: 无
方 法: public boolean java.lang.String.contentEquals(java.lang.CharSequence)
修饰符: public
返回值: boolean
方法名: contentEquals
参 数: interface java.lang.CharSequence
异 常: 无
方 法: public boolean java.lang.String.contentEquals(java.lang.StringBuffer)
修饰符: public
返回值: boolean
方法名: contentEquals
参 数: class java.lang.StringBuffer
异 常: 无
方 法: public static java.lang.String java.lang.String.copyValueOf(char[])
修饰符: public static
返回值: class java.lang.String
方法名: copyValueOf
参 数: class [C
异 常: 无
方 法: public static java.lang.String java.lang.String.copyValueOf(char[],int,int)
修饰符: public static
返回值: class java.lang.String
方法名: copyValueOf
参 数: class [C int int
异 常: 无
方 法: public boolean java.lang.String.endsWith(java.lang.String)
修饰符: public
返回值: boolean
方法名: endsWith
参 数: class java.lang.String
异 常: 无
方 法: public boolean java.lang.String.equalsIgnoreCase(java.lang.String)
修饰符: public
返回值: boolean
方法名: equalsIgnoreCase
参 数: class java.lang.String
异 常: 无
方 法: public static java.lang.String java.lang.String.format(java.util.Locale,java.lang.String,java.lang.Object[])
修饰符: public static transient
返回值: class java.lang.String
方法名: format
参 数: class java.util.Locale class java.lang.String class [Ljava.lang.Object;
异 常: 无
方 法: public static java.lang.String java.lang.String.format(java.lang.String,java.lang.Object[])
修饰符: public static transient
返回值: class java.lang.String
方法名: format
参 数: class java.lang.String class [Ljava.lang.Object;
异 常: 无
方 法: public void java.lang.String.getBytes(int,int,byte[],int)
修饰符: public
返回值: void
方法名: getBytes
参 数: int int class [B int
异 常: 无
方 法: public byte[] java.lang.String.getBytes(java.nio.charset.Charset)
修饰符: public
返回值: class [B
方法名: getBytes
参 数: class java.nio.charset.Charset
异 常: 无
方 法: public byte[] java.lang.String.getBytes(java.lang.String) throws java.io.UnsupportedEncodingException
修饰符: public
返回值: class [B
方法名: getBytes
参 数: class java.lang.String
异 常: class java.io.UnsupportedEncodingException
方 法: public byte[] java.lang.String.getBytes()
修饰符: public
返回值: class [B
方法名: getBytes
参 数: 无
异 常: 无
方 法: public void java.lang.String.getChars(int,int,char[],int)
修饰符: public
返回值: void
方法名: getChars
参 数: int int class [C int
异 常: 无
方 法: void java.lang.String.getChars(char[],int)
修饰符:
返回值: void
方法名: getChars
参 数: class [C int
异 常: 无
方 法: private int java.lang.String.indexOfSupplementary(int,int)
修饰符: private
返回值: int
方法名: indexOfSupplementary
参 数: int int
异 常: 无
方 法: public native java.lang.String java.lang.String.intern()
修饰符: public native
返回值: class java.lang.String
方法名: intern
参 数: 无
异 常: 无
方 法: public boolean java.lang.String.isEmpty()
修饰符: public
返回值: boolean
方法名: isEmpty
参 数: 无
异 常: 无
方 法: public static java.lang.String java.lang.String.join(java.lang.CharSequence,java.lang.CharSequence[])
修饰符: public static transient
返回值: class java.lang.String
方法名: join
参 数: interface java.lang.CharSequence class [Ljava.lang.CharSequence;
异 常: 无
方 法: public static java.lang.String java.lang.String.join(java.lang.CharSequence,java.lang.Iterable)
修饰符: public static
返回值: class java.lang.String
方法名: join
参 数: interface java.lang.CharSequence interface java.lang.Iterable
异 常: 无
方 法: public int java.lang.String.lastIndexOf(int)
修饰符: public
返回值: int
方法名: lastIndexOf
参 数: int
异 常: 无
方 法: public int java.lang.String.lastIndexOf(java.lang.String)
修饰符: public
返回值: int
方法名: lastIndexOf
参 数: class java.lang.String
异 常: 无
方 法: static int java.lang.String.lastIndexOf(char[],int,int,java.lang.String,int)
修饰符: static
返回值: int
方法名: lastIndexOf
参 数: class [C int int class java.lang.String int
异 常: 无
方 法: public int java.lang.String.lastIndexOf(java.lang.String,int)
修饰符: public
返回值: int
方法名: lastIndexOf
参 数: class java.lang.String int
异 常: 无
方 法: public int java.lang.String.lastIndexOf(int,int)
修饰符: public
返回值: int
方法名: lastIndexOf
参 数: int int
异 常: 无
方 法: static int java.lang.String.lastIndexOf(char[],int,int,char[],int,int,int)
修饰符: static
返回值: int
方法名: lastIndexOf
参 数: class [C int int class [C int int int
异 常: 无
方 法: private int java.lang.String.lastIndexOfSupplementary(int,int)
修饰符: private
返回值: int
方法名: lastIndexOfSupplementary
参 数: int int
异 常: 无
方 法: public int java.lang.String.length()
修饰符: public
返回值: int
方法名: length
参 数: 无
异 常: 无
方 法: public boolean java.lang.String.matches(java.lang.String)
修饰符: public
返回值: boolean
方法名: matches
参 数: class java.lang.String
异 常: 无
方 法: private boolean java.lang.String.nonSyncContentEquals(java.lang.AbstractStringBuilder)
修饰符: private
返回值: boolean
方法名: nonSyncContentEquals
参 数: class java.lang.AbstractStringBuilder
异 常: 无
方 法: public int java.lang.String.offsetByCodePoints(int,int)
修饰符: public
返回值: int
方法名: offsetByCodePoints
参 数: int int
异 常: 无
方 法: public boolean java.lang.String.regionMatches(int,java.lang.String,int,int)
修饰符: public
返回值: boolean
方法名: regionMatches
参 数: int class java.lang.String int int
异 常: 无
方 法: public boolean java.lang.String.regionMatches(boolean,int,java.lang.String,int,int)
修饰符: public
返回值: boolean
方法名: regionMatches
参 数: boolean int class java.lang.String int int
异 常: 无
方 法: public java.lang.String java.lang.String.replace(char,char)
修饰符: public
返回值: class java.lang.String
方法名: replace
参 数: char char
异 常: 无
方 法: public java.lang.String java.lang.String.replace(java.lang.CharSequence,java.lang.CharSequence)
修饰符: public
返回值: class java.lang.String
方法名: replace
参 数: interface java.lang.CharSequence interface java.lang.CharSequence
异 常: 无
方 法: public java.lang.String java.lang.String.replaceAll(java.lang.String,java.lang.String)
修饰符: public
返回值: class java.lang.String
方法名: replaceAll
参 数: class java.lang.String class java.lang.String
异 常: 无
方 法: public java.lang.String java.lang.String.replaceFirst(java.lang.String,java.lang.String)
修饰符: public
返回值: class java.lang.String
方法名: replaceFirst
参 数: class java.lang.String class java.lang.String
异 常: 无
方 法: public java.lang.String[] java.lang.String.split(java.lang.String)
修饰符: public
返回值: class [Ljava.lang.String;
方法名: split
参 数: class java.lang.String
异 常: 无
方 法: public java.lang.String[] java.lang.String.split(java.lang.String,int)
修饰符: public
返回值: class [Ljava.lang.String;
方法名: split
参 数: class java.lang.String int
异 常: 无
方 法: public boolean java.lang.String.startsWith(java.lang.String,int)
修饰符: public
返回值: boolean
方法名: startsWith
参 数: class java.lang.String int
异 常: 无
方 法: public boolean java.lang.String.startsWith(java.lang.String)
修饰符: public
返回值: boolean
方法名: startsWith
参 数: class java.lang.String
异 常: 无
方 法: public java.lang.CharSequence java.lang.String.subSequence(int,int)
修饰符: public
返回值: interface java.lang.CharSequence
方法名: subSequence
参 数: int int
异 常: 无
方 法: public java.lang.String java.lang.String.substring(int)
修饰符: public
返回值: class java.lang.String
方法名: substring
参 数: int
异 常: 无
方 法: public java.lang.String java.lang.String.substring(int,int)
修饰符: public
返回值: class java.lang.String
方法名: substring
参 数: int int
异 常: 无
方 法: public char[] java.lang.String.toCharArray()
修饰符: public
返回值: class [C
方法名: toCharArray
参 数: 无
异 常: 无
方 法: public java.lang.String java.lang.String.toLowerCase(java.util.Locale)
修饰符: public
返回值: class java.lang.String
方法名: toLowerCase
参 数: class java.util.Locale
异 常: 无
方 法: public java.lang.String java.lang.String.toLowerCase()
修饰符: public
返回值: class java.lang.String
方法名: toLowerCase
参 数: 无
异 常: 无
方 法: public java.lang.String java.lang.String.toUpperCase()
修饰符: public
返回值: class java.lang.String
方法名: toUpperCase
参 数: 无
异 常: 无
方 法: public java.lang.String java.lang.String.toUpperCase(java.util.Locale)
修饰符: public
返回值: class java.lang.String
方法名: toUpperCase
参 数: class java.util.Locale
异 常: 无
方 法: public java.lang.String java.lang.String.trim()
修饰符: public
返回值: class java.lang.String
方法名: trim
参 数: 无
异 常: 无
边栏推荐
- Install SSL Certificate in Litespeed web server
- Ripro9.0 revised and upgraded version +wp two beautification packages + rare plug-ins
- Autumn recruit offer harvesters, and take the offers of major manufacturers at will
- Object stream of i/o operation (serialization and deserialization)
- Random talk on GIS data (V) - geographic coordinate system
- Server online speed measurement system source code
- CVPR2021 行人重识别/Person Re-identification 论文+开源代码汇总
- Leecode8 string conversion integer (ATOI)
- Ten thousand words detailed Google play online application standard package format AAB
- Game theory 1. Introduction (basic concepts of combination games, confrontation search, bash games, Nim games)
猜你喜欢

Six papers that must be seen in the field of target detection

Random talk on GIS data (V) - geographic coordinate system

A lock faster than read-write lock. Don't get to know it quickly

WPF layout controls are scaled up and down with the window, which is suitable for multi-resolution full screen filling applications

An example of the mandatory measures of Microsoft edge browser tracking prevention

ZBrush 2022 software installation package download and installation tutorial

Open source huizhichuang future | 2022 open atom global open source summit openatom openeuler sub forum was successfully held

Update dev (development version) of the latest win11

Ripro9.0 revised and upgraded version +wp two beautification packages + rare plug-ins

Design a system that supports millions of users
随机推荐
服务器在线测速系统源码
[geek challenge 2019] babysql-1 | SQL injection
Autumn recruit offer harvesters, and take the offers of major manufacturers at will
大佬们,问下,这个不能checkpoint,因为有个jdbc的task任务状态是FINISHED,
Let me think about Linear Algebra: a summary of basic learning of linear algebra
AlexNet—论文分析及复现
R language uses LM function to build regression model, uses the augmented function of bloom package to store the model results in dataframe, and uses ggplot2 to visualize the regression residual diagr
A hundred flowers bloom in data analysis engines. Why invest heavily in Clickhouse?
Dialogue with Zhuang biaowei: the first lesson of open source
Excel shortcut keys (letters + numbers) Encyclopedia
擦黑板特效表白H5源码+非常浪漫/附BGM
WPF dependent attribute (WPF dependent attribute)
Minikube initial experience environment construction
Xiaoshuidi 2.0 website navigation network template
Software testing and quality learning notes 1 --- black box testing
Two point, three point, 01 point plan [bullet I]
b2子主题/博客b2child子主题/开源源码
Database advanced learning notes - system package
Four advantages of verification code to ensure mailbox security
PHP检测url网址链接是否正常可访问