-3
任何人都知道有關班級生成的事情嗎? 我想生成內部靜態類來訪問父類的私有構造函數。 使用生成的代碼比反射速度快很多倍,因爲JIT只會在一段時間後優化反射(冷啓動需要很長時間) 並且顯然我需要合成類等等,可能有人對它有一些瞭解?我如何生成內部靜態類來訪問父類的私有構造函數?
任何人都知道有關班級生成的事情嗎? 我想生成內部靜態類來訪問父類的私有構造函數。 使用生成的代碼比反射速度快很多倍,因爲JIT只會在一段時間後優化反射(冷啓動需要很長時間) 並且顯然我需要合成類等等,可能有人對它有一些瞭解?我如何生成內部靜態類來訪問父類的私有構造函數?
內部類可以隨時訪問父類的私有字段和方法。
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();
}
}
生成一個我的意思是, 聽說過ASM? 點是原始類沒有內部類 所以我嘗試使用ASM字節碼生成器在運行時 生成一個。理論上它應該起作用。 –
因爲你可以看到內部類可以訪問父母 –
你試過了嗎?順便說一下,「正常」班的問題是什麼?爲什麼它必須在運行時生成*? – Aloso