如何利用反射技术动态创建内部类的实例

zhaowenbin 2004-09-13 05:04:08
如:
class a{
private class b{
....
}

private getMethod(){
try{
Class cls=Class.forName("b");//在这里报错,报告无法找到b类,我该如何写?
}
catch(...){
...
}
}
}
...全文
324 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
july_typhoon 2004-09-14
  • 打赏
  • 举报
回复
我试过了,Class cls=Class.forName("a$b");没问题,是不是在其他地方报错?
zhaowenbin 2004-09-14
  • 打赏
  • 举报
回复
大家有没有办法?
takecare 2004-09-14
  • 打赏
  • 举报
回复
一定要用反射机制吗?应该是无法访问的吧。
如果你只是想构建inner class的话
//Class cls=Class.forName("b");
b bobj = new a().new b();
lliushine 2004-09-14
  • 打赏
  • 举报
回复
你把完整的代码拿来看看呢,
我用Class cls = Class.forName("b");
时没报错啊
chesterwoo 2004-09-14
  • 打赏
  • 举报
回复
1. 好像不能直接反射内部类,不过你可以反射a来得到b。
2. 对于反射私有成员或方法,可以setAccessible()为true。
zhaowenbin 2004-09-14
  • 打赏
  • 举报
回复
是否要加包名?
如包名为pg则代码写成
Class cls=Class.forName("pg.a$b" );
注意我这里的b是私有的,这个没有影响吧?
Tomcat4 2004-09-14
  • 打赏
  • 举报
回复
问一下:生成了cls,纳如何使用它呢?
zhaowenbin 2004-09-13
  • 打赏
  • 举报
回复
Class cls=Class.forName( "a$b "); 这个方法我试过了,不行啊,有什么要求吗?
vongood 2004-09-13
  • 打赏
  • 举报
回复
是这样的啊。
试试把b改为外部类。
july_typhoon 2004-09-13
  • 打赏
  • 举报
回复
Class cls=Class.forName("a$b");
zhaowenbin 2004-09-13
  • 打赏
  • 举报
回复
我在等待呀。。。有人会吗
showerXP 2004-09-13
  • 打赏
  • 举报
回复
up一下。
tij里面说了。一下记不得了。
ELONGSSS 2004-09-13
  • 打赏
  • 举报
回复
up一下
zhaowenbin 2004-09-13
  • 打赏
  • 举报
回复
没有人这么做过?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧