Groovy 冗余修剪() 调用

Maa*_*oAk 4 java string groovy trim

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

x = "ok".trim()
Run Code Online (Sandbox Code Playgroud)

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

Ami*_*era 8

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

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

在 groovy控制台上运行以下代码。

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

输出:

Hi
Run Code Online (Sandbox Code Playgroud)

所以,我的结论是,只要您不更改 trim() 的定义,您的代码就不会产生任何效果。