java中的反射总结

java中的反射总结

ID:38582939

大小:298.73 KB

页数:12页

时间:2019-06-15

java中的反射总结_第1页
java中的反射总结_第2页
java中的反射总结_第3页
java中的反射总结_第4页
java中的反射总结_第5页
资源描述:

《java中的反射总结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Class类如果要完成反射,那么必须了解Class类实例1:通过对象取得包名和类名12345678910111213package org.siu; class Test{     } public class Demo{    public static void main(String[]args){        Testt= new Test();        System.out.println(t.getClass());        System.out.println(t.getClass().getName());    }}编译结果如下,注意包的编译方式即可此

2、处的getClass()方法是默认继承自Object类的 在java中,Object类是所有类的父类,同样,所有类的实例化对象也都是Class类的实例因此,这样一来就会牵扯到向上转型和向下转型的概念由于向下转型的不安全因素,在这里泛型也会接踵而来(不过我想说的是,此处的泛型设计很刺眼!尼玛,整个java的语法设计同样刺眼,超恶心!!!) 实例2:Class类的实例化由于Class类没有构造方法,所以实例化Class类的方式有点特殊,有三种方式:对象.getClass()类.ClassforName()123456class Test{     } public class Demo{

3、    public static void main(String[]789101112131415161718192021222324252627args){        //方式一:        Testt= new Test();        Classc1=t.getClass();        System.out.println(c1);                 //方式二:        //为了避免特殊性,这里不用Test类,而用java库中的String类        Classc2=String.

4、class;        System.out.println(c2);                 //方式三:        //forName()方法会抛出异常        Classc3= null;        try {            c3=Class.forName("Test");        } catch (ClassNotFoundExceptione){            e.printStackTrace();        }        System.out.println(c3);    }} 其中,forName()方

5、法需要重点掌握,因为它可以在类不确定的情况下实例化Class,更具灵活性 Class类的应用Class类中有一个方法叫做newInstance(),它可以用来创建一个Class类对象的新实例怎么说呢?Class对象包含的内容就是反射好的那个类,我们要构造那个类的新实例(新对象)实例3:Class类的无参构造对象12public class Demo{    public static void main(String[]345678910111213141516171819202122232425args){        //实例化Class对象,forName()方法会抛异常  

6、      Classc= null;        try {            //这里需要完整的包名和类名            c=Class.forName("java.lang.String");        } catch (ClassNotFoundExceptione){            e.printStackTrace();        }                 //生成一个字符串的引用        Strings= null;        try {            //将构造好的对象向下转型为String类      

7、      //newInstance()方法会抛异常            s=(String)c.newInstance();        } catch (InstantiationExceptione){            e.printStackTrace();        } catch (IllegalAccessExceptione){            e.printStackTrace();        }        

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。