美文网首页
反射相关

反射相关

作者: 许方镇 | 来源:发表于2020-03-02 01:36 被阅读0次

    Class

    所谓的Class对象就是Class文件在内存中的实例。

    Class对象获取的三种方式

    Entity entity = new Entity();

    1. Class entityClass = Entity.class; //利用类

    2. Class entityClass = entity.getClass();//利用对象

    3. Class entityClass = Class.forName("com.onlyone.reflect.Entity");//利用类的全限定路径

    利用 Class 创建对象

    无参数
    Entity entity = (Entity) entityClass.newInstance();
    
    有参数
    Entity entity = (Entity) entityClass.getConstructor(String.class).newInstance("小明");
    
    私有
    Constructor entityConstructor = entityClass.getDeclaredConstructor(String.class, int.class);
    entityConstructor.setAccessible(true);
    Entity entity = (Entity) entityConstructor.newInstance("小明", 20);
    

    注意:

    1. 上面需要使用 int.class,而不是Integer.class
    2. getDeclaredxxx 可以获取该类自己包括私有在内的xxx,
    3. getxxx 只能获取public,不过可以获取包括其子类的xxx。
    4. 私有的访问前需要 setAccessible(true);

    动态代理

    相关文章

      网友评论

          本文标题:反射相关

          本文链接:https://www.haomeiwen.com/subject/tbadkhtx.html