我有一个Class Foo。
Foo toy=new Foo("toy");
Foo shoe=new Foo("shoes");
我们可以做点什么吗
1 toy.getClass().getName()
会打印:toy
。
2 shoe.getClass().getName()
会打印:shoe
。
答案 0 :(得分:1)
不,不容易。 Class#getName()
用于反射和调试,是Java运行时的一部分。由于java.lang.Class
是最终版,因此您无法覆盖它(不重要,因为getClass()
无论如何返回Class
并且与您的子类没有任何关系,即使你能做到这一点)
相反,只需使用toy.toString()
并将一个toString方法添加到Foo
类,该类输出传递给构造函数的任何值。