是否可以获得此对象的名称?

时间:2014-08-11 04:24:56

标签: java reflection

这一切都可能吗?

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);

3 个答案:

答案 0 :(得分:3)

局部变量?不,它们被编译器删除了。

答案 1 :(得分:3)

对象没有名字。变量有名称,字段有名称,方法有名称,类有名称,包有名称。但是Java编译器会丢弃局部变量名。

在这种情况下,您最多可以获取指向该对象的变量的名称。但是,这里的名称是this,这是'这个',你已经知道了,所以它没有多大用处。

答案 2 :(得分:1)

你尝试做的事情是不可能的。 要了解原因,也许它可以帮助您记住任何对象都可以被多个变量引用,或者作为具有不同名称的参数移交 - 这就是为什么您不能直接连接。 也许你可以通过注释实现你的目标。 问候, 蓝色