Java 在对象上应用新函数
我有一个字符串,我想在一个函数中同时对它执行一系列操作(这将是一系列替换)。如果字符串被调用为Java 在对象上应用新函数,java,Java,我有一个字符串,我想在一个函数中同时对它执行一系列操作(这将是一系列替换)。如果字符串被调用为string,并且我所做的函数是color(),那么我想做一些类似于string.color()的事情。我应该如何声明color()?我应该在扩展String的类中还是在接口中执行此操作?我是否应该放弃它,改为使用color(string) 只需执行公共字符串颜色(字符串){…} 由于您无法更改字符串(即它们是不可变的),因此最终将从任一方法返回一个新的字符串。最好采用更简单的方法,直到情况证明可以使用
string
,并且我所做的函数是color()
,那么我想做一些类似于string.color()
的事情。我应该如何声明color()
?我应该在扩展String
的类中还是在接口中执行此操作?我是否应该放弃它,改为使用color(string)
只需执行公共字符串颜色(字符串){…}
由于您无法更改
字符串
(即它们是不可变的),因此最终将从任一方法返回一个新的字符串
。最好采用更简单的方法,直到情况证明可以使用更复杂的方法,如继承或组合。只需执行公共字符串颜色(String){…}
由于您无法更改
字符串
(即它们是不可变的),因此最终将从任一方法返回一个新的字符串
。最好采用更简单的方法,直到情况证明可以使用更复杂的方法,如继承或组合。String是java中的最后一个类,因此您不能扩展并向String类添加方法您应该改为使用
颜色(String)
如果你在处理字符串中的替换,那么字符串是java中的最后一个类,因此不能将方法扩展到字符串类
< <强> > < <强> >代码>颜色(字符串)< /代码>。br>
如果您正在处理字符串中的替换字符串,则 字符串为“强>最终< /强>,因此不能扩展。
只需使用颜色(字符串)。字符串是最终的,因此您无法扩展它
只需使用颜色(字符串)。只需一个注释-您的任何建议(扩展类
String
,或接口)都不会让您避免使用颜色(字符串):
是最后一个类,因此您不能用自己的操作定义它的子类String
- 您可以创建任何喜欢的接口,但不能让
实现它们-因此接口上的方法需要将字符串作为参数,然后再次返回String
color(String)
String
,或接口)都不会让您避免颜色(String)
:
是最后一个类,因此您不能用自己的操作定义它的子类String
- 您可以创建任何喜欢的接口,但不能让
实现它们-因此接口上的方法需要将字符串作为参数,然后再次返回String
color(String)
- 考虑组合(例如,
字符串的简单包装):
这种方法的优点在于它允许您在以后链接方法调用(jQuery风格):
考虑组合(例如,字符串的简单包装):
这种方法的优点在于它允许您在以后链接方法调用(jQuery风格):
字符串是最终的且不可变的,所以您将无法扩展它并生成一个子类,该子类上有新的方法,例如color
一种方法是创建一个定义了方法颜色的StringUtil类,即
public static String color(String someString) {
// Your logic that creates a new "colored" String and returns this new String
}
然后你可以打电话:
String coloredString = StringUtil.color(someString);
另一方面,每次对字符串执行任何操作时,都会返回一个新的字符串对象,因此,如果在color方法中对字符串执行许多操作(例如连接),则使用类似StringBuilder的东西会更有效,并且只需返回StringBuilder的toString()的结果方法。字符串是最终的且不可变的,因此您将无法扩展它并生成一个子类,该子类上有新的方法,例如color
一种方法是创建一个定义了方法颜色的StringUtil类,即
public static String color(String someString) {
// Your logic that creates a new "colored" String and returns this new String
}
然后你可以打电话:
String coloredString = StringUtil.color(someString);
另一方面,每次对字符串执行任何操作时,都会返回一个新的字符串对象,因此,如果在color方法中对字符串执行许多操作(如连接),则使用类似StringBuilder的东西会更有效,并且您只需返回StringBuilder的toString()方法的结果即可。True,但是因为在我的代码中,string
实际上更像是something.affunction().anotherFunction()
,如果我可以添加一个.color()
,而不是将其全部放在函数中,那就更好了:P.你是不是特别想要制作一个这样流畅的界面?如果是这样的话,我建议您更新您的问题以说明这一点。另外,什么是a函数()
和anotherFunction()
?这些方法是已经为String
定义的方法,还是您自己的方法?我想我已经明确表示我正在努力让它工作,但听起来好像不起作用。至于函数,它们实际上是来自我正在为其编写插件的程序给定的变量的函数,并且没有任何控制权:P.True,但是因为在我的代码中,string
实际上更像something.affunction().anotherFunction()
,如果我可以添加一个.color()
而不是将其全部放在函数中:P.您是否特别希望创建这样一个流畅的界面?如果是这样的话,我建议您更新您的问题以说明这一点。另外,什么是a函数()
和anotherFunction()
?这些方法是已经为String
定义的方法,还是您自己的方法?我想我已经明确表示我正在努力让它工作,但听起来好像不起作用。至于函数,它们实际上是来自