2

我们定义了一组方法java.lang.Object。每个类都会自动扩展这个类。

如何在java.lang.Object类中添加方法?

4

4 回答 4

2

不(仅通过修补 rt.jar 或 bootclasspath),当您可以编写自己的类时,为什么要这样做 - 根据定义 - extends Object

如果“需要”向现有类(特别是 JRE 库中的某些内容)添加方法,这通常表明您的设计/对象模型不合理。向我们展示您为什么要这样做,我们可以为您提供更好的帮助。

我从对另一个答案的评论中了解到,您想打印有关“未知”对象的信息。这正是toString()它的用途。如果您在自己的类上覆盖该方法,则可以精确控制输出,而不是通常的name@hash. 这当然是假设您没有将任何东西扔到有问题的方法中,而只是 控制的类......

干杯,

于 2013-12-10T10:18:01.967 回答
2

正如其他人指出的那样:如果避免更改原始代码,您的问题的答案是否定的......

我不知道你的应用程序,但如果你想添加“方面”,你可能想看看 AspectJ:http ://en.wikipedia.org/wiki/AspectJ

于 2013-12-10T10:30:10.010 回答
2

从技术上讲,您可以,但存在许多问题。

  • 它违反了您的 Oracle JDK 许可协议,可能还违反了其他许可协议。
  • 您必须将新版本添加到bootclasspathorendorsed目录的开头,这很痛苦。
  • 您只能在 JVM 崩溃之前添加几个方法。它对 Object 类和其他一些常用的类做了一些假设。

我只会出于调查目的而这样做,而不是在生产中使用它。

于 2013-12-10T10:38:45.730 回答
0

不!你不能在java.lang.Object课堂上添加你的自定义函数。

于 2013-12-10T10:20:25.743 回答