在java中创建对象时,如何获取对象名?
创建对象时,如何获取该对象的名称 例如,让我们来考虑一本课本:在java中创建对象时,如何获取对象名?,java,objectname,Java,Objectname,创建对象时,如何获取该对象的名称 例如,让我们来考虑一本课本: 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
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);
我想得到创建的对象的名称,即“book”,有没有办法得到它?
我尝试了toString()函数,但它不起作用。它会打印如下内容:@3d4eac69您必须在Book类中创建getter方法。我想:
public String getName() {
return this.name;
}
然后你会打电话:
book.getName();
使用:
Java中的每个对象都有getClass()
方法:每个
类对象都有自己的名称:
如果您指的是名称
属性,则无法按编写的代码进行编辑。您需要将name
公开,或者为其提供一个公共getter
如果你指的是这个类的名称,那么应该是
book.getClass().getName()
如果您指的是分配给它的变量的名称(book
),则不能,这在运行时是不可用的信息(在调试生成和调试器自省之外)
你所说的对象的“名称”是什么意思?名称
属性?班名?指定给它的变量的名称?这似乎不可能。对象没有名称。变量有,但对象没有。请理解,book变量引用的同一对象可以被大量其他变量引用。哪个变量代表它的名称?或者,对象可以是数组或ArrayList的一部分,因此不是“命名”变量的一部分。同样,对象没有名称。像这样重复关闭,类似的问题已经被问了很多次。我不确定我们是否还需要一个。你需要对象名,而不是类名。是的,对不起,所以不可能得到@AndrewTobilkoNice答案,很好地解释了为什么不可能得到(第3点)+1我指的是第三个选项,所以不可能。
book.getClass().getName()