2015-01-03 78 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