Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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 - Fatal编程技术网

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
      定义的方法,还是您自己的方法?我想我已经明确表示我正在努力让它工作,但听起来好像不起作用。至于函数,它们实际上是来自