javaSE反射总结

"这三种方式,我们一定要掌握"

字节码文件获取的三种方式
1.    对象名.getCalss();         
2.    类名.class            
3.    Class.forName("全类名");    


代码示例:
    //1.通过对象获取
        Student s = new Student();
        s.getClass()
        //getClass() 方法是在哪个类中的?Object
        //为咩这个方法要定义在Object类里面?
        //因为所有的类都有字节码文件,我们要写在所有的类共同的父类中.(向上抽取)
        //因为Object是所有的类直接父类或者间接父类,写在Object中,所有的类都可以用这个方法了
        

    
    //2,通过类名.class调用
        Student.class

    //3,Class 类中的一个静态方法获取
        Class.forName("全类名");//全类名:包名 + 类名



以上这三种方法,你觉得那种较为灵活,为咩?
    因为第一种和第二种,如果我们想要获取另外类的class对象.
    此时得去修改代码.

    因为第三种,我们可以把全类名写在本地的文本文件中
    然后用IO流,读这一整行. BufferedReader 因为有一个 readLine()
    这个方法的返回值line就是读到的全类名
    这样我们可以和第三种方式这样去结合
    Class.forName(line);


    BufferedReader br = new BufferedReader(new File.......)
    String line = br.readLine();
    Class.forName(line);
    此时我们一开始想要获取的是Student.然后第二次我们想要获取Person.
    1.不用到代码中修改代码了
    2,我们只需要修改文本文件中的那段话就可以了
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值