【发布时间】: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