当前位置: 首页 > 知识库问答 >
问题:

如何在Java中获取变量名?[复制]

墨承泽
2023-03-14

可能重复:
Java反射:如何获取变量的名称?

我发现关于这个话题的讨论很多,但从来没有令人满意的答案。。

A anyVariableName = new A();

我怎样才能得到变量的名称anyvolableName并得到字符串"anyvolableName"作为结果?这在Java可能吗?

共有2个答案

甘永春
2023-03-14

局部变量名只存储在源代码(可以解析)或调试信息(如果包含字节码,可以从字节码中获取)中

如果是字段,如果不知道名称,可以使用Class.getDeclaredFields()。

郎项禹
2023-03-14

如果anyVariableName是局部变量,则不能。如果是字段,请使用Class#getField()Class#getDeclaredField()

 类似资料:
  • 有可能得到变量名吗? 例如: 现在打印结果: 屏幕:

  • 我面临以下问题:我必须给成千上万的图形用户界面元素命名。如果它能像这样工作,那就太好了: 如果我能将元素的名称设置为“Classname.myMenuItem”,那就太好了。 是否有任何方法来获取变量的名称(变量名称ofc,而不是JMenuItem.getName())?

  • 问题内容: 使用Java Reflection,是否可以获得本地变量的名称?例如,如果我有这个: 是否有可能实现一种可以找到这些变量名称的方法,如下所示: 问题答案: 从Java 8开始,可以通过反射获得一些局部变量名称信息。请参阅下面的“更新”部分。 完整的信息通常存储在类文件中。一种编译时优化是删除它,节省空间(并提供一些混淆)。但是,如果存在,则每个方法都有一个局部变量表属性,该属性列出了局

  • 使用Java反射,是否可以获取局部变量的名称?例如,如果我有: 有没有可能实现一种方法,可以找到这些变量的名称,比如: 编辑:这个问题与Java中有没有找到传递给函数的变量名称的方法不同?在这一点上,它更纯粹地询问一个人是否可以使用反射来确定局部变量的名称,而另一个问题(包括公认的答案)更侧重于测试变量的值。

  • 我想从传递的几个值动态调用几个“setter”方法。每个方法都将具有字符串,int...要设置的变量类型(例如:setUserName(String userName)或setUserAge(int age))。 在我的例子中,我有一个setter方法“setUse_status(int use_stats)”,我无法配置getDeclaredMethod方法工作。似乎在获取方法时,classVa

  • 方法是否可能返回“object”?谢谢