Java Groovy redundant trim()调用

Java Groovy redundant trim()调用,java,string,groovy,trim,Java,String,Groovy,Trim,我正在阅读Groovy脚本,发现了很多trim()调用,尤其是这种表达式: x = "ok".trim() 我想知道trim()除了明显的修剪之外,是否还有其他一些效果可以解释上述表达式(它也可能只是坏代码)。trim()的默认定义从字符串的开始和结束处移除空格。因此,在应用程序中,如果使用默认定义,则“ok”。trim()没有任何效果 但是,如果更改trim()方法的定义,则它可能会以不同的方式运行。现在String是最后一个类,所以您不能重写它,但是Groovy提供了一个名为元类的特性,它

我正在阅读Groovy脚本,发现了很多trim()调用,尤其是这种表达式:

x = "ok".trim()

我想知道trim()除了明显的修剪之外,是否还有其他一些效果可以解释上述表达式(它也可能只是坏代码)。

trim()的默认定义
从字符串的开始和结束处移除空格。因此,在应用程序中,如果使用默认定义,则“ok”。trim()没有任何效果

但是,如果更改
trim()
方法的定义,则它可能会以不同的方式运行。现在String是最后一个类,所以您不能重写它,但是Groovy提供了一个名为
元类的特性,它允许您在运行时更改定义

在groovy上运行以下代码

输出:

Hi

因此,我的结论是,只要您不更改trim()的定义,您的代码就不会有任何效果。

trim()的默认定义将删除字符串开头和结尾的空格。因此,在应用程序中,如果使用默认定义,则“ok”。trim()没有任何效果

但是,如果更改
trim()
方法的定义,则它可能会以不同的方式运行。现在String是最后一个类,所以您不能重写它,但是Groovy提供了一个名为
元类的特性,它允许您在运行时更改定义

在groovy上运行以下代码

输出:

Hi

因此,我的结论是,只要您不更改trim()的定义,您的代码就没有任何效果。

在这种情况下:
x=“ok”。trim()没有任何效果。我知道有一个字符串和一个GString,可能是某种转换?不,trim会删除文本前后的空白。e、 g“ok”.trim()将为您提供“ok”(不带空格),如果您的“ok”中有某个被考虑的数据字符串(例如,如果其中有
${..}
),则trim()将充当“golfed”
.toString()
。所以,这可能是由于复制和粘贴或内联不好造成的?由于您的代码示例前面没有
def
,这是像jenkins、soapui、gradle这样的特殊雪花吗。。。你没有提到吗?上面的某个地方有一个
def x=…
,它只是groovy在框架中用作脚本语言(没有什么特别之处),在这种情况下:
x=“ok”。trim()
没有任何效果。我知道有一个字符串和一个GString,可能是某种转换?不,修剪删除文本前后的空白。e、 g“ok”.trim()将为您提供“ok”(不带空格),如果您的“ok”中有某个被考虑的数据字符串(例如,如果其中有
${..}
),则trim()将充当“golfed”
.toString()
。所以,这可能是由于复制和粘贴或内联不好造成的?由于您的代码示例前面没有
def
,这是像jenkins、soapui、gradle这样的特殊雪花吗。。。你没有提到吗?上面的某个地方有一个
defx=…
,它只是groovy在一个框架中用作脚本语言(没什么特别的),我搜索了元类,没有找到任何东西。但非常有趣的答案(如果没有其他显示,我会接受)是的,有人没有写非常干净的代码。。。我会移除装饰物,我在元类中搜索,什么也没找到。但非常有趣的答案(如果没有其他显示,我会接受)是的,有人没有写非常干净的代码。。。我要拆下饰件