Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何向标准java类添加方法_Java_Class_Methods_Monkeypatching_Groovy_Scala_Ruby_Jruby_Javascript - Fatal编程技术网

如何向标准java类添加方法

如何向标准java类添加方法,java,class,methods,monkeypatching,groovy,scala,ruby,jruby,javascript,Java,Class,Methods,Monkeypatching,Groovy,Scala,Ruby,Jruby,Javascript,有没有一种方法可以将方法添加到标准Java类中,例如Object 我知道你不能像String这样的子类是final,但是Object不是final。我知道我可以将Object子类化,并在子类中定义一个方法,使我的所有类都成为该类的子类,但我宁愿不这样做 我怀疑这不是不可能的,就是我忽略了什么。提前感谢您的回答。在Java中无法做到这一点。但其他JVM语言也能做到这一点: in允许向任何类添加任意方法 可以使用隐式转换以静态类型的方式模拟此类行为,请参见: 您还可以在JVM之上运行()和 您不能

有没有一种方法可以将方法添加到标准Java类中,例如
Object

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


我怀疑这不是不可能的,就是我忽略了什么。提前感谢您的回答。

在Java中无法做到这一点。但其他JVM语言也能做到这一点:

  • in允许向任何类添加任意方法

  • 可以使用隐式转换以静态类型的方式模拟此类行为,请参见:

  • 您还可以在JVM之上运行()和


您不能将方法添加到标准java类中。您应该这样做!您期望的行为是在Javascript原型中。这是用于测试还是用于生产代码?您能解释一下为什么您可能想要这样做吗?是的,我想象这在Java中是不可能的。最初它是用来做一些实验的,但如果我能得到其他的东西来配合它工作的话,我希望它最终会出现在一些OSS软件中。我希望向对象添加方法的原因有两个。一是因为从逻辑上讲,这是出于其他原因的最佳方式。另一个原因是我心目中的方法主要依赖于this关键字。不过,请参见下文。谢谢您的回答。是的,我认为一种JVM脚本语言可能能够做到这一点。这是我可以接受的。我应该说的是,我想要一个JVM解决方案(不一定是Java),所以一种动态JVM语言或使用反射,甚至在类路径中使用定制的对象类文件都可以。我肯定会看看groovy和javascript。然而,我认为从维护的角度来看,“语言内”解决方案是最好的。感谢Tomasz对所有评论的人的回答。