package Fanshe;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class Random {
public static void main(String[] args) throws ClassNotFoundException {
Class c = Class.forName("java.util.Random");
//获取属性 将属性放入到Field数组中
//getDeclaredFields是获取本类所有的属性
//getFields是获取本类和父类public级别的属性
Field[] field=c.getDeclaredFields();
for(Field a:field){
System.out.println("属性名"+a.getName());
System.out.println("访问修饰符"+ Modifier.toString(a.getModifiers()));
System.out.println("数据类型"+a.getType().getSimpleName());
}
//获取方法 将方法放入到Method数组中
// getDeclaredMethods是获取本类所有的构造器
// getMEthod是获取本类和父类public级别属性
Method[] methods=c.getDeclaredMethods();
for(Method method:methods){
System.out.println("方法名"+method.getName());
System.out.println("访问修饰符"+Modifier.toString(method.getModifiers()));
}
//获取构造器 将构造器放入到Constructor数组中
//getDeclaredConstrusctors是获取本类所有的构造器
//getConstrusctors是获取本类和父类public级别的构造器
Constructor[] constructors=c.getDeclaredConstructors();
for(Constructor ca:constructors){
System.out.println("名字"+ca.getName());
System.out.println("访问修饰符"+ Modifier.toString(ca.getModifiers()));
}
//获取包名
// System.out.println(c.getPackageName());
// //获取包名.类名
// System.out.println(c.getName());
}
}
反射获取属性方法 和构造器
最新推荐文章于 2023-11-14 20:03:26 发布