java反射机制
------------恢复内容开始------------
1、Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息。
当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性
2、在运行期间,一个类,只有一个Class对象产生,获取Class对象最常用的方式是Class c = Class.forName(包名.类名)
3、protected 是受保护的,只有当前类的成员与继承该类的类才能访问;private是完全私有的,有当前类中的成员能访问到。
4、toString方法通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法
5、反射常用的类:
Java.lang.Class;
Java.lang.reflect.Constructor;
Java.lang.reflect.Field;
Java.lang.reflect.Method;
Java.lang.reflect.Modifier;
6、使用反射来创建实例有两种方法:
(1)
使用Class对象的newInstance()方法来创建Class对象对应类的实例。
Class<?> c = String.class;
Object str = c.newInstance();
(2)先通过Class对象获取指定的Constructor对象,再调用Constructor对象的newInstance()方法来创建对象,这种方法可以用指定的构造器构造类的实例。
//获取String的Class对象
Class<?> str = String.class;
//通过Class对象获取指定的Constructor构造器对象
Constructor constructor=c.getConstructor(String.class);
//根据构造器创建实例:
Object obj = constructor.newInstance(“hello reflection”);
7、通过反射可获取指定类的公有私有 构造方法 成员变量,成员方法
通过反射还可以使某个类的main函数运行
详情请见https://blog.csdn.net/a745233700/article/details/82893076
------------恢复内容结束------------