JAVA用反射创建嵌套静态类的实例

时间:2015-01-03 12:26:29

标签: java reflection nested-class static-classes

我想用反射创建嵌套 静态类的实例。 我有以下代码:

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

但无法弄清楚if语句中要做什么。 一些帮助或建议将不胜感激。 感谢。

2 个答案:

答案 0 :(得分:2)

嵌套静态类不需要外部实例,因此请尝试与else中的相同,但从构造函数的参数中删除outerClassouterInstance

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

答案 1 :(得分:0)

尝试类似:

Class<MyClass> nestedClass = MyClass.class;
if (Modifier.isStatic(nestedClass.getModifiers())) {
     MyClass instance = nestedClass.newInstance();
     System.out.println(instance);
}
Output:
MainClass$MyClass@1db9742
相关问题