【发布时间】:2015-06-22 06:10:34
【问题描述】:
class test {
public static void main(String[] args) {
new test();
}
void method() {
class inside {
int a;
void methodinside() {}
}
}
}
我正在使用反射声明类,例如:
Class c = Class.forName("test");
Class[] cls = c.getDeclaredClasses();
for(Class cl : cls)
System.out.println(cl.getName());
但是,我的程序找不到class inside。
【问题讨论】:
-
很有趣,因为我们可以用
getEnclosingClass做相反的事情。 ideone.com/nA3Zua -
如何在main中访问,而在另一个方法或另一个类中的类中访问???
-
如果你想从
main访问该类,那么你必须在main可以看到它的地方声明它。这些本地类的重点是在声明方法之外不可见。 -
除了反思还有其他想法吗???
-
这可能是 X-Y 问题。你真正想做什么?您正在开发某种 IDE 工具吗?
标签: java class oop reflection local-class