可能重复:
Is it possible to get the declaration name of an object at runtime in java?
是否可以在运行时获取Java中String引用的名称?
前:
String rep="asd";
在这里,我可以将rep
变量的名称命名为'rep'吗?
答案 0 :(得分:5)
引用名称只是变量的名称。它只是指向对象的引用。
你无法在运行时获得它。主要是因为,许多引用之间可能存在冲突,可能指向该String对象,或者任何对象。
想一想: -
String str = "Rohit";
String abc = str;
现在,您有两个引用str
和abc
指向相同的文字Rohit
。
所以,如果你想在运行时引用它。你会得到哪些参考?这就是Java不允许的原因。甚至不是通过Reflection
。
但如果您愿意,可以手动维护所有参考名称。但那将是一项乏味的工作。但我有一个问题 - > Why on earth would you need that?
答案 1 :(得分:2)
如果你问这个问题,你很可能会做错事。如果没有关于你实际做什么的更多信息,简短的回答是“不,这是不可能的”,但是,如果由于某种原因你在运行时确实需要变量名称,那么最好的方法是使用hashmap您可以在其中查看密钥的标签名称以及其中的值。