目录1.获取Field
2.反编译Field
3.通过反射机制访问对象属性
4.可变长度参数
5.反射Method(了解)
6.反编译(了解)
7.反射机制调用方法
8.反射Constructor
9.反射机制调用构造方法
10.获取父类和父接口
在前面一节我们介绍了反射机制的详细内容反射机制,本节我们将介绍通过反射获取类的属性、方法等信息。
1.获取Fieldpublic class ReflectTest03 {
public static void main(String[] args) throws Exception{
//1.获取整个类
Class studentClass=Class.forName("cn.yujie.bean.Student");
String className=studentClass.getName();
System.out.println(className);
System.out.println(studentClass.getSimpleName());
//获取类中的所有public的Field
Field[] fields=studentClass.getFields();
System.out.println(fields.length); //测试数组中只有1个元素
//测试这个field
Field f=fields[0];
//取出field的它的名字
String fieldName=f.getName();
System.out.println(fieldName);
//获取所有的Field
//获取所有的Field
Field[] fs=studentClass.getDeclaredFields();
System.out.println(fs.length);
System.out.println("-----------------");
//遍历
for(Field field :fs){
//获取属性的修饰符列表
//返回的修饰符是一个数字,每个数字是修饰符的代号
int i=field.getModifiers();
//可以将这个代号数字转换成字符串
String ModifierString = Modifier.toString(i);
System.out.print(ModifierString+" ");
//获取属性的类型
Class fieldType=field.getType();
String fName=fieldType.getSimpleName();
System.out.print(fName+" ");
//获取属性的名字
System.out.println(field.getName()+" ");
System.out.println();
}
}}
2.反编译Field
通过反射机制,反编译一个类的属性Fieldpublic class ReflectTest05 {
public static void main(String[] args) throws Exception{
//创建这个是为了拼接字符串
StringBuilder s=new StringBuilder();
Class studentC