解决方案 »
- Swing 中 substance 设置水印的方法是什么?
- 现在JAVA的游戏引擎和框架有哪几种是开源的!?
- 对.java文件内容的查找(请高手帮忙!!急用!!非常感谢)
- 一个正则表达式问题
- 我用jbuilder写了一个javamail发送字符串的application,在JB中运行得很好,但生成的exe却发送失败
- java 处理音频的问题
- 为什么swing的菜单弹出速度没有win32的快,总是要停顿一下?
- 凭心而论,参加像J2EE这样的培训班有没有意思?
- 在JAVA中,怎样向一个数组输入数据?
- 求电子书!《数据结构与算法分析(Java版)》
- 一个大厅n个房间,每个房间里的逻辑模型相同,但是有定时事件,如何实现这种模型?
- 【求助】 array绕来绕去绕晕了
Constructor c = Inner.class.getDeclaredConstructor(Outer.class);
c.newInstance(new Outer());
内部类编译后会在构造方法的参数前再加个参数,参数类型就是外部的类。
自己探索这个问题的方法我给两种,一个getDeclaredConstructors()方法反射能看到所有构造方法,一个通过javap反编译
TestInnnerClass myinner = new TestInnnerClass();
Class<?>[] clazzs = myinner.getClass().getDeclaredClasses();
for (int i = 0; i < clazzs.length; i++) {
Object obj = clazzs[i].getConstructor(myinner.getClass())
.newInstance(myinner);
System.out.println(obj.getClass().getName());
}