如何为java.lang中的现有类定义java方法?

时间:2016-01-23 23:28:34

标签: java

我想为String类编写一个自定义方法,以便我可以像下面这样调用它:

String res = "";
String currentLine;  

他们是否有办法专门完成这项工作?

如果没有,那么我会做以下事情,但我仍然想知道。

String s = "hello world";
s.myMethod();

2 个答案:

答案 0 :(得分:3)

这是不可能的,因为您无法在Java中向现有类添加方法。

它更有趣,因为Java中的类String是一个final类,不能被子类化。

您可能对this StackOverflow answer感兴趣,因为您所描述的内容被称为monkeypatching,这在比Java更动态的语言中很常见。其中一个答案链接到cglib,这是几个使用字节码做一些魔术的库之一。努力尝试并违反基本原则,可以做很多事情,包括making 5 be 3

更新:This question,其答案似乎可以解决您的确切问题。一些答案很有创意。

答案 1 :(得分:1)

这是不可能的。 java中最好的方法是创建自己的类,从string扩展并在那里写你的方法。这样你的类就像字符串类,但包括你的东西。

但是不可能因为字符串是最终的。因此,创建一个只包含字符串对象的类,然后编写引用字符串的方法。因此,您可以通过类中的字符串对象调用字符串方法,并直接通过您的类调用您的方法