知道了对象的名字,能否得到这个对象的实例?

zclever 2011-08-09 05:18:58
比如有一个类:

public class Hello{
private static String string = "Hello";
.....
}
Hello hello = new Hello();

String name = "hello";
能否就此name得到Hello的实例对象?
...全文
202 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
luohuijun619 2011-08-09
  • 打赏
  • 举报
回复
不行,得有完整的包名才行,通过反射
zclever 2011-08-09
  • 打赏
  • 举报
回复
揭帖,散分
daijope 2011-08-09
  • 打赏
  • 举报
回复
哦,反射,,
zclever 2011-08-09
  • 打赏
  • 举报
回复
对,还有包名,如果包名和类名都齐全的话,是否就可以得到该类的一个新的实例了。我是楼主
softroad 2011-08-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 java_pengjin 的回复:]

你应该是说通过类名来实例化一个对象吧
Class.forName("Hello").newInstance();
[/Quote]
动态加载类,然后实例化
风尘中国 2011-08-09
  • 打赏
  • 举报
回复
如果知道了某个类的完整名称(必须要包含包名),那么是可以用反射reflection机制来得到这个类的实例对象,这个没有任何问题,因为你可以解析得到这个类的构造方法。
但是如果你想得到程序运行当中所有这个类已经实例化的对象,那么是不太可能做到的,除非你自己对类的初始化构造用了什么特殊的处理
shuwei003 2011-08-09
  • 打赏
  • 举报
回复
如果Hello在当前包下,那么Hello hello = Class.forName("Hello").newInstance();
jamespengo 2011-08-09
  • 打赏
  • 举报
回复
你应该是说通过类名来实例化一个对象吧
Class.forName("Hello").newInstance();
wangjn1982 2011-08-09
  • 打赏
  • 举报
回复
还必须知道Hello类的路径。
老张-AI 2011-08-09
  • 打赏
  • 举报
回复
这个不行
要有包名。。。 也就是说有全类名
比如:com.java.Hello

这样就可以用反射来得到实例。。

62,627

社区成员

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

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