我想为String类编写一个自定义方法,以便我可以像下面这样调用它:
String res = "";
String currentLine;
他们是否有办法专门完成这项工作?
如果没有,那么我会做以下事情,但我仍然想知道。
String s = "hello world";
s.myMethod();
答案 0 :(得分:3)
这是不可能的,因为您无法在Java中向现有类添加方法。
它更有趣,因为Java中的类String
是一个final
类,不能被子类化。
您可能对this StackOverflow answer感兴趣,因为您所描述的内容被称为monkeypatching,这在比Java更动态的语言中很常见。其中一个答案链接到cglib,这是几个使用字节码做一些魔术的库之一。努力尝试并违反基本原则,可以做很多事情,包括making 5 be 3。
更新:This question,其答案似乎可以解决您的确切问题。一些答案很有创意。
答案 1 :(得分:1)
这是不可能的。 java中最好的方法是创建自己的类,从string扩展并在那里写你的方法。这样你的类就像字符串类,但包括你的东西。
但是不可能因为字符串是最终的。因此,创建一个只包含字符串对象的类,然后编写引用字符串的方法。因此,您可以通过类中的字符串对象调用字符串方法,并直接通过您的类调用您的方法