繁体   English   中英

我们可以在java.lang.Object中添加额外的方法吗?

[英]Can we add extra method in java.lang.Object?

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

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

否(仅通过修改rt.jar或bootclasspath即可),为什么在编写自己的类(根据定义) extends Object时为什么要这么做呢?

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

通过对另一个答案的评论,我了解到您要打印有关“未知”对象的信息。 这正是toString()目的。 如果您在自己的类上重写该方法,则可以完全控制输出,而不是通常的name@hash 当然,这是假设你不扔任何东西刚进入方法有问题,但只能控制类...

干杯,

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

我不知道您的应用程序,但是如果您想添加“ Aspects”,则可能需要看一下AspectJ: http : //en.wikipedia.org/wiki/AspectJ

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

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

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

没有! 您不能在java.lang.Object类中添加自定义函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM