java 如何得到变量所指的内容?

FergusJ 2015-05-24 07:01:47
我有个变量
String tok="abc";
我想用这个变量所指的字符串(即abc)作为下面创建类的实例对象名
Attribute tok = new Attribute(tok);
//如果我这么写的话,变量"tok"就是对象名了,而且不允许这样,参数也是"tok"了
想要达到的效果:
Attribute abc = new Attribute(abc);//如何得到变量tok所指的内容的字面量

有这个疑问是因为,我要写个方法,方法传入参数是变化的,方法目标是产生相对应的类的实例对象
用反射能可以吗?
...全文
154 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
日知己所无 2015-06-01
  • 打赏
  • 举报
回复
这里有个我写的自己感觉挺好玩的反射的例子 http://bbs.bccn.net/thread-439929-1-1.html 估计能解决你的问题吧……类名和方法名都是从XML文件里读出来的,可以任意指定
FergusJ 2015-05-25
  • 打赏
  • 举报
回复
引用 8 楼 u013142781 的回复:
之前没看清楚,终于明白你的意思了,实例的名称通过传递的参数来创建,我是想不出法子了........................
还是表示感谢, 我一开始表达不清晰
小宝鸽 2015-05-24
  • 打赏
  • 举报
回复
之前没看清楚,终于明白你的意思了,实例的名称通过传递的参数来创建,我是想不出法子了........................
FergusJ 2015-05-24
  • 打赏
  • 举报
回复
引用 6 楼 u013142781 的回复:
onestringToAttribute("abc")你是这样传递参数........,试一下把String paramStr = new String(tok); 改成String paramStr = "" + tok;吧


可是没有解决 变量名的重用问题





不能获取变量tok 所指向的字符串作为对象名


小宝鸽 2015-05-24
  • 打赏
  • 举报
回复
onestringToAttribute("abc")你是这样传递参数........,试一下把String paramStr = new String(tok); 改成String paramStr = "" + tok;吧
FergusJ 2015-05-24
  • 打赏
  • 举报
回复
引用 3 楼 u013142781 的回复:
如果你还把通过string参数传进去,会被改变,可以先var paramStr = new String(yourStr); 然后传paramStr进去就不好了
您的意思是不是这样: /**生成单个属性类对象*/ private static BswabeAttribute onestringToAttribute(String tok) { String paramStr = new String(tok); BswabeAttribute paramStr = new BswabeAttribute(paramStr ,0.0f); return null; } 调用该方法时 onestringToAttribute("abc"),可以产生名叫abc的BswabeAttribute类的实例对象 编辑器说局部变量重复啊?
FergusJ 2015-05-24
  • 打赏
  • 举报
回复
引用 2 楼 qq118194716 的回复:
难道是我眼花了,不是同一个东西么 你不会在反射里面写Class.forName("tok")而不是Class.forName(tok)吧..
那么反射我应该怎么写,我刚刚学反射 这是我写的方法,应该怎么添加反射,使得调用该方法时,传入参数tok="abc",能够创建一个名为abc的对象 private static BswabeAttribute onestringToAttribute(String tok) { BswabeAttribute tok = new BswabeAttribute(tok,0.0f); return null; }
小宝鸽 2015-05-24
  • 打赏
  • 举报
回复
如果你还把通过string参数传进去,会被改变,可以先var paramStr = new String(yourStr); 然后传paramStr进去就不好了
飏飏一蝶 2015-05-24
  • 打赏
  • 举报
回复
难道是我眼花了,不是同一个东西么 你不会在反射里面写Class.forName("tok")而不是Class.forName(tok)吧..
FergusJ 2015-05-24
  • 打赏
  • 举报
回复
简单的说就是 用传递参数创建实例对象的名

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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