【问题标题】:Getting the name of a variable in Java在Java中获取变量的名称
【发布时间】:2017-08-06 01:28:23
【问题描述】:

是否可以在运行时获取 Java 中的变量名称?

可能的用例:在断言中。给定一个断言,如

assert percval >= 0 && percval <= 100 : "percval out of range: " + percval;

根据您的 IDE,如果您重构代码、重命名变量,它可能不会自动更改字符串中的出现次数。可能的结果:

assert percentage >= 0 && percentage <= 100 : "percval out of range: " + percentage;

如果有这样的东西就好了:

assert percval >= 0 && percval <= 100 : nameOf(percval) + " out of range: " + percval;

可能吗?

【问题讨论】:

  • 不,这在 java 中是不可能的。反射可能会为您提供成员的名称,但不是局部变量。
  • 我认为您可以通过检查stackoverflow.com/questions/744226/… 来实现这一点。
  • 我的回答解决了你的问题吗?我很好奇,因为我自己没有使用它,想知道我是否可以提供链接?
  • 我也没有尝试过,因为该项目仍然只在 Java 7 上开发。如果它有效,那将是我想要的。稍后切换到 Java 8 时会谈到它。我不知道这会发生在什么时候。

标签: java introspection


【解决方案1】:

我不确定在 java 8 之前是否有可能,但是使用 java 8,您可以按照following link 并实现您想要做的事情。

对此的总结如下;

提供一种机制来轻松可靠地检索参数 通过核心反射在运行时命名方法和构造函数。

【讨论】:

    猜你喜欢
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多