如何获取Java中的实例名称?
我想知道我们是否可以在Java中获得实例名的名称。例如:如何获取Java中的实例名称?,java,Java,我想知道我们是否可以在Java中获得实例名的名称。例如: class A { public void run() { System.out.println("Name: " + ????); } } public class Main { public static void main(String[] _args) { A p = new A(); A q = new A(); p.run(); q.run(); } } 我的预期结
class A {
public void run() {
System.out.println("Name: " + ????);
}
}
public class Main
{
public static void main(String[] _args) {
A p = new A();
A q = new A();
p.run();
q.run();
}
}
我的预期结果是:
Name: p
Name: q
这在Java中是不可能的,甚至通过反射都不可用。最好的选择是有一个
字符串
字段,在该字段中存储变量的名称,并在创建对象引用时填充该字段
class A {
private final String name;
public A(String name) {
this.name = name;
}
public void run() {
System.out.println("Name: " + this.name);
}
}
//...
A p = new A("p");
A q = new A("q");
这毫无意义。对象可以指定给一个、多个或不指定变量,例如当它是集合的一部分时。在每种情况下,它的名称是什么?例如
A p=newa()代码>然后aq=p代码>。对象的名称是什么?PQ回答:变量名并不是你认为它们的意思。来自匿名内部类的对象呢,比如button.addActionListener(newActionListener(){…})代码>ActionListener的名称是什么?再说一次,这个概念没有真正的意义。我知道它毫无意义。然而,我正在做的项目有一些特殊的限制。因此,我可以保证我要获取的对象肯定会被分配一次,并且具有显式名称。所以我只想问一下,是否有一些方法来处理这种情况。在这种情况下,你应该公布你的限制的细节,因为没有这些,你的问题闻起来很可能是伪装的。这就是我担心的。无论如何,我想我会采用这个解决方案。谢谢