2

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

例如,让我们考虑一个类 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);

我想获取创建的对象的名称,即“书”,有什么方法可以获取它吗?我尝试了 toString(), 函数,但它不起作用,它打印出如下内容:@3d4eac69

4

3 回答 3

5
  1. 如果您指的是name属性,则不能使用编写的代码。您需要name公开或为其提供公共吸气剂

  2. 如果你的意思是班级的名字,那就是

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

于 2015-05-30T14:46:45.027 回答
0

您必须在 Book 类中创建 getter 方法。会像:

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

然后你会打电话:

book.getName();
于 2015-05-30T14:42:41.070 回答
0

利用:

book.getClass().getName();

Java 中的每个对象都有getClass()方法:
getClass() 文档
每个Class对象都有它的名称:
getName() 文档

于 2015-05-30T14:44:39.663 回答