我想用反射创建嵌套 静态类的实例。 我有以下代码:
if (Modifier.isStatic(nestedClass.getModifiers())) {
//TODO - WRITE HERE SOMETHING
} else {
ctor = nestedClass.getDeclaredConstructor(outerClass);
ctor.setAccessible(true);
testInstance = ctor.newInstance(outerInstance);
}
但无法弄清楚if语句中要做什么。 一些帮助或建议将不胜感激。 感谢。
答案 0 :(得分:2)
嵌套静态类不需要外部实例,因此请尝试与else
中的相同,但从构造函数的参数中删除outerClass
和outerInstance
。
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