创建对象时如何获取该对象的名称?
例如,让我们考虑一个类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
答案 0 :(得分:5)
如果您指的是name
属性,则无法将代码编写为。您需要公开name
,或者为其提供公共吸气剂
如果您的意思是班级的名称,那就是
book.getClass().getName()
如果您指的是您已将其分配给(book
)的变量的名称,则不能,这不是运行时可用的信息(在调试构建和调试器内省之外) )。
答案 1 :(得分:0)
您必须在Book类中创建getter方法。就像:
public String getName() {
return this.name;
}
然后你会打电话:
book.getName();
答案 2 :(得分:0)
使用:
book.getClass().getName();
Java中的每个对象都有getClass()
方法:
getClass() documentation
每个Class
对象都有它的名字:
getName() documentation