A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© Over_Mstuang 中级黑马   /  2015-8-14 21:36  /  174 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

反射的三种获取方法
package com.zhan.fanshe1;
/*
* 反射:在运行状态下,通过class文件对象(Class的对象),去使用构造方法,成员变量,成员方法。
*
* 那么,我们是如何获取到class文件对象的呢?(字节码文件对象)
* A:Object类的getClass()方法。
* B:数据类型的静态的class属性
* C:通过Class类的静态方法forName(String className)
*
* 到底使用哪一种呢?
* 开发中用第三种。自己写例子测试可以使用前两种。
* 因为第三种方式可以结合配置文件使用。
*/
public class Test {
        public static void main(String[] args) throws ClassNotFoundException {
                //方式一:Object类的getClass()方法
                Person p = new Person();
                Class c = p.getClass();
                Person p1 = new Person();
                Class c1 = p.getClass();
                System.out.println(p == p1);
                System.out.println(c == c1);
                System.out.println("-------------");
                //方式二:数据类型的静态Class属性
                Class c3 = Person.class;
                System.out.println(c == c3);
                System.out.println("-----------");
                //方式三:通过Class类的静态方法forName(String className)
                Class c4 = Class.forName("com.zhan.fanshe1.Person");
                System.out.println(c == c4);
        }

        private static Class forName() {
                // TODO Auto-generated method stub
                return null;
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马