【问题标题】:how to add method to standard java class如何将方法添加到标准java类
【发布时间】:2012-08-21 06:00:26
【问题描述】:

有没有办法给标准Java类添加方法,比如Object

我知道你不能继承像 String 这样的类,它们是 final,但 Object 不是。我知道我可以将 Object 子类化并在子类中定义一个方法,并使我的所有类成为它的子类,但我宁愿不必这样做。

我怀疑这是不可能的,或者我忽略了一些东西。提前感谢您的任何回答。

【问题讨论】:

  • 您不能将方法添加到标准 java 类中。
  • 你应该这样做!您期望的行为是在 Javascript 原型中。
  • 这是用于测试还是生产代码?
  • 您能解释一下您为什么要这样做吗?
  • 是的,我认为这在 Java 中是不可能的。最初它是为了做一些实验,但如果我能得到其他东西来配合它工作,它有望最终出现在一些 OSS 软件中。我希望向 Object 添加方法实际上有两个原因。一个是因为从逻辑上讲,这是出于其他原因的最佳方式。另一个原因是我想到的方法主要依赖于 this 关键字。但是,请参见下文。

标签: java class methods monkeypatching


【解决方案1】:

你不能在 Java 中做到这一点。但是其他 JVM 语言可以这样做:

【讨论】:

  • 感谢您的回答。是的,我认为其中一种 JVM 脚本语言可能能够做到这一点。这对我来说是可以接受的。我应该说的是我想要一个 JVM 解决方案(不一定是 Java),因此其中一种动态 JVM 语言或使用反射甚至在类路径中使用自定义的 Object 类文件都可以。我肯定会看看 groovy 和 javascript。但是,我认为从维护的角度来看,“语言内”解决方案是最好的。感谢 Tomasz 对所有评论者的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-11
  • 2012-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-21
  • 2017-04-30
相关资源
最近更新 更多