Groovy冗余trim()调用

时间:2018-03-16 11:13:35

标签: java string groovy trim

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

x = "ok".trim()

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

1 个答案:

答案 0 :(得分:1)

trim()的默认定义从字符串的开头和结尾删除空格。所以,在您的应用程序中,如果您使用默认定义,那么“ok”.trim()没有任何影响。

但是如果你改变trim()方法的定义,那么它可能会以不同的方式运行。现在String是一个最终类,所以你不能覆盖它,但Groovy为你提供了一个名为metaclass的功能,它允许你在运行时更改定义。

在groovy console上运行以下代码。

String.metaClass.trim = {
 //you could have your own trim implementation here for String class
 return "Hi"
}
x = "ok".trim()
println x  

输出:

Hi

所以,我的结论是,一旦你没有改变trim()的定义,你的代码就没有任何影响。