【发布时间】:2010-10-19 03:46:00
【问题描述】:
使用 Java 反射,是否可以获取局部变量的名称?例如,如果我有这个:
Foo b = new Foo();
Foo a = new Foo();
Foo r = new Foo();
是否有可能实现一种可以找到这些变量名称的方法,如下所示:
public void baz(Foo... foos)
{
for (Foo foo: foos) {
// Print the name of each foo - b, a, and r
System.out.println(***);
}
}
编辑:这个问题与Is there a way in Java to find the name of the variable that was passed to a function? 不同,它更纯粹地询问是否可以使用反射来确定局部变量的名称,而另一个问题(包括接受的答案)是更专注于测试变量的值。
【问题讨论】:
-
所有很棒的答案!感谢大家的回复和评论 - 这是一次有趣且富有洞察力的讨论。
-
有可能。见我的[要点][1]。适用于 JDK 1.1 到 JDK 7。[1]:gist.github.com/2011728
-
不是重复的,并更新了我的问题以解释原因。如果有的话,另一个问题是这个问题的重复(或特殊情况)!
标签: java reflection