这一切都可能吗?
public class Clazz
{
public String myName()
{
return Magic.getVariableName(this);
}
public static void main(String[] args)
{
Clazz foo = new Clazz();
System.out.println(foo.myName());
}
}
输出:
foo
当然,用实际获得变量自己名称的代码替换Magic.getVariableName(this);
。
答案 0 :(得分:3)
局部变量?不,它们被编译器删除了。
答案 1 :(得分:3)
对象没有名字。变量有名称,字段有名称,方法有名称,类有名称,包有名称。但是Java编译器会丢弃局部变量名。
在这种情况下,您最多可以获取指向该对象的变量的名称。但是,这里的名称是this
,这是'这个',你已经知道了,所以它没有多大用处。
答案 2 :(得分:1)
你尝试做的事情是不可能的。 要了解原因,也许它可以帮助您记住任何对象都可以被多个变量引用,或者作为具有不同名称的参数移交 - 这就是为什么您不能直接连接。 也许你可以通过注释实现你的目标。 问候, 蓝色