在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()