a- package demo.reflect;
- public class ReflectDemo {
- /**
- * 反射:通过class对象文件对象,去使用该文件中的成员变量,构造函数,成员方法
- *
- * 首先应该获取class文件对象,也就是Class类的对象
- *
- * Class类: 成员变量: Field 构造方法: Constructor 成员方法: Method
- *
- * 获取Class类的对象的方法
- * 1 通过Object类的getClass()方法获取
- * 2 数据类型的静态属性class
- * 3 Class类中的静态方法
- * public static Class<T> forName(String className);
- * @throws ClassNotFoundException
- */
- public static void main(String[] args) throws ClassNotFoundException {
- // getClass()
- People p1 = new People();
- Class<? extends People> pc1 = p1.getClass();// 获取运行期间的类
- People p2 = new People();
- Class<? extends People> pc2 = p2.getClass();
- System.out.println((p1 == p2) + "..." + (pc1 == pc2));//不同的类对象获取的Class文件对象是同一个
-
- //类的静态属性
- Class pc3 = People.class;
- System.out.println(pc3 == pc2);
-
- // Class类中的静态方法 forName()
- Class pc4 = Class.forName("demo.reflect.People");
- System.out.println(pc3 == pc4);
- }
- }
复制代码
|
|