使用Java Reflection,是否可以获取局部变量的名称?例如,如果我有这个:
Foo b = new Foo();
Foo a = new Foo();
Foo r = new Foo();
Run Code Online (Sandbox Code Playgroud)
是否可以实现一个可以找到这些变量名称的方法,如下所示:
public void baz(Foo... foos)
{
for (Foo foo: foos) {
// Print the name of each foo - b, a, and r
System.out.println(***);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:这个问题不同于Java有没有办法找到传递给函数的变量的名称?因为它更纯粹地询问关于是否可以使用反射来确定局部变量的名称的问题,而另一个问题(包括接受的答案)更侧重于测试变量的值.
String activityState = "resume";
DebugLog(activityState)
void DebugLog(String obj1) {}
Run Code Online (Sandbox Code Playgroud)
如何使DebugLog这样打印:
activityState : resume
Run Code Online (Sandbox Code Playgroud)
我曾经在调试时在很多地方写了很多print语句作为日志.我会写一些类似的陈述
System.out.println("activityState : " + activityState);
Run Code Online (Sandbox Code Playgroud)
我想要一个方法来打印变量名称和变量值.在C++中,它可以像下面这样完成:
#define dbg(x) cout<< #x <<" --> " << x << endl ;
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
提前致谢.