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