2017-02-20 46 views
-3

任何人都知道有关班级生成的事情吗? 我想生成内部静态类来访问父类的私有构造函数。 使用生成的代码比反射速度快很多倍,因为JIT只会在一段时间后优化反射(冷启动需要很长时间) 并且显然我需要合成类等等,可能有人对它有一些了解?我如何生成内部静态类来访问父类的私有构造函数?

回答

-1

内部类可以随时访问父类的私有字段和方法。

class A { 
    private A() { 
     System.out.println("private constructor called"); 
    } 

    static class Inner { 
     Inner() { 
      System.out.println("constructor of static inner class called"); 
      new A(); 
     } 
    } 

    public static void main(String[] args) { 
     new A.Inner(); 
    } 
} 
+0

生成一个我的意思是, 听说过ASM? 点是原始类没有内部类 所以我尝试使用ASM字节码生成器在运行时 生成一个。理论上它应该起作用。 –

+0

因为你可以看到内部类可以访问父母 –

+0

你试过了吗?顺便说一下,“正常”班的问题是什么?为什么它必须在运行时生成*? – Aloso

相关问题