這是一個在Java 1.5中測試的示例程序。當反射地訪問內部類時出現異常
我想知道爲什麼下面兩種方法有不同的結果。它是一個錯誤還是一種Java特性?
package test;
public class TestOut {
public static void main(String[] args) {
// works
new TestIn();
// throws IllegalAccessException
Class.forName("test.TestOut$TestIn").newInstance();
}
private static class TestIn {
}
}
雖然是'private',但即使它是'private',顯示效果如何呢? – polygenelubricants 2010-05-26 05:20:36
我認爲是因爲反射消除了上下文,而上下文是內部類屬於外部。 Class對象本身保留對封閉類的引用,但構造函數不包含。 Bozho 3x, – Bozho 2010-05-26 05:30:19
。 「情境」是我真正想知道的。恕我直言,構造函數應該有足夠的信息來了解enclsong類,並且似乎沒有理由以這種方式實現它。 – MikeJiang 2010-05-26 05:48:40