如何在java中创建对象名称?
当一个对象被创建时我如何获得该对象的名称?如何在java中创建对象名称?
例如,让我们考虑一个类图书:
public class Book {
private String name;
private int pages;
public Book(String name, int pages) {
this.name = name;
this.pages = pages;
}
}
// now i create an object of this class
Book book = new Book("Java",100);
我想找到对象的名字创建了“书”,有没有办法得到它? 我试过toString()函数,但它不起作用,它打印出如下所示:@ 3d4eac69
如果你指的是
name
财产,你不能用你的代码所写。你需要要么使name
公共,或提供一个公共的getter它-
如果你指的是类的名称,这将是
book.getClass().getName()
如果你指的是变量的名称你已经将它分配到(
book
),你不能,那不是在运行时可用的信息(除了调试构建和调试器内省)。
好的答案,很好的解释为什么它不可能得到(点3)+1 – maskacovnik
我的意思是第三种选择,所以这是不可能的。 – rainman
您必须在Book类中创建getter方法。会是这样的:
public String getName() {
return this.name;
}
然后您可以拨打:
book.getName();
用途:
book.getClass().getName();
在Java中的每个对象都有getClass()
方法:
getClass() documentation
而每Class
对象有它的名字:
getName() documentation
你需要对象名称,不要使用类名。 – Andrew
是的,对不起,所以它是不可能得到@AndrewTobilko – maskacovnik
你是什么意思的对象的“名称”? 'name'属性?班级的名字?你分配给它的变量的名字? –
这似乎不可能。 – Andrew
对象没有名称。变量可以,但对象不会。了解由book变量引用的同一对象可以被大量其他变量引用。哪个变量代表它的名字?或者一个对象可以是数组或ArrayList的一部分,因此不是“已命名”变量的一部分。再次,对象没有名字。 –