可能是重复问题:
Java反射:如何获取变量的名称?
我在这个话题上找到了各种讨论,但从未得到令人满意的答案。
A anyVariableName = new A();
我怎样才能获得变量anyVariableName
的名称并且得到字符串"anyVariableName"
作为结果?这在Java中是否可行?
可能是重复问题:
Java反射:如何获取变量的名称?
我在这个话题上找到了各种讨论,但从未得到令人满意的答案。
A anyVariableName = new A();
我怎样才能获得变量anyVariableName
的名称并且得到字符串"anyVariableName"
作为结果?这在Java中是否可行?
anyVariableName
是一个局部变量,你就不能这样做。如果它是一个字段,请使用Class#getField()
或Class#getDeclaredField()
。本地变量名字存储的唯一地方是源代码(您可以解析)或者调试信息(如果已经包含在字节码中,您可以从中获取)
如果是字段,您可以使用Class.getDeclaredFields()方法,即使您不知道名称也可以。
Socket s = new Socket(9001);
,你可能会看到类似Socket localSocket = new Socket(9001);
的内容。虽然这让我感到困惑,因为我不明白如果发生这种情况,反射是如何工作的。 - ldam
anyVariableName
在代码中是一个字段还是一个普通变量? - gaborsch