2015-01-03 102 views
0

我想創建一個嵌套的實例static帶反射的類。 我有以下代碼:JAVA用反射創建嵌套靜態類的實例

if (Modifier.isStatic(nestedClass.getModifiers())) { 
       //TODO - WRITE HERE SOMETHING 
} else { 
    ctor = nestedClass.getDeclaredConstructor(outerClass); 
    ctor.setAccessible(true); 
    testInstance = ctor.newInstance(outerInstance); 
} 

,但無法弄清楚什麼if語句內完成。 一些幫助或建議,將不勝感激。 謝謝。

+0

只需調用構造函數 - 「Class.newInstance」。 –

回答

2

嵌套靜態類不需要外部的實例,所以嘗試做一樣else但是從構造函數的參數刪除outerClassouterInstance

ctor = nestedClass.getDeclaredConstructor();//no outer class in argument 
ctor.setAccessible(true); 
testInstance = ctor.newInstance();//no outer instance in argument 
+0

謝謝......(: – TT8

0

試着這麼做:

Class<MyClass> nestedClass = MyClass.class; 
if (Modifier.isStatic(nestedClass.getModifiers())) { 
    MyClass instance = nestedClass.newInstance(); 
    System.out.println(instance); 
} 
Output: 
[email protected] 
+0

Thx。但是,如果nestedClass也是私有的,我會得到一個異常。 任何方式呢? – TT8