在 java 中创建时如何获取对象名称?

how can i get an object name when it is created in java?

创建对象后,如何获取该对象的名称??

例如让我们考虑一本 class 书:

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 class 中创建 getter 方法。就像:

public String getName() {
    return this.name;
}

然后你会打电话给:

book.getName();

使用:

book.getClass().getName();

Java中的每个对象都有getClass()方法:
getClass() documentation
每个 Class 对象都有其名称:
getName() documentation

  1. 如果你的意思是name属性,你不能用你写的代码。您需要制作 name public,或为其提供 public getter

  2. 如果你指的是class的名字,那就是

    book.getClass().getName()
    
  3. 如果你指的是你分配给它的变量的名称(book),你不能,那不是运行时可用的信息(在调试之外)构建和调试器自省)。