java - 我可以更改 getClass().getName() 方法的行为吗

标签 java

我有一个 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/

相关文章:

java - 如何查找 Netbeans 用于运行应用程序的命令

java - 为什么Room数据库在重启应用后会丢失数据?

java - 当客户端断电或在netty中失去互联网连接时,如何检测客户端在服务器上的断开连接

java - Intellij IDEA 同一个项目中的多种语言

java - 创建异常的成本与记录异常的成本相比

java - 访问 actionPerformed 中的变量

java - FileOutputStream 和 DataOutput Stream 的问题

java - 用于比较 Java 和 C# 之间具有相同结构的对象的哈希码

java - Android 中 SimpleAdapter 上的 ClassCastException

java - 在 Netbeans JFrame 中显示一组图像