Groovy 冗余 trim() 调用

Groovy redundant trim() calls

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

x = "ok".trim()

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

trim() 的默认定义从字符串的开头和结尾删除 space。因此,在您的应用中,如果您使用默认定义,则 "ok".trim() 没有任何效果。

但是如果您更改 trim() 方法的定义,那么它可能会以不同的方式运行。现在 String 是一个最终的 class 所以你不能覆盖它但是 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() 的定义,您的代码就不会产生任何影响。