我是一个时髦的新手,所以请耐心等待。我喜欢groovy编写更少且通常更清晰的代码的能力,但我想弄清楚是否有更好或更易读的方法来压缩这些多个if语句。这是一个相当简单的代码片段,但必须有一个更好的方法来做到这一点。我是新手,所以任何代码片段都非常受欢迎。
if (!textOverlay) {
textType = ""
if(url != null){
Page getPage = resource.getResourceResolver().getResource(url).adaptTo(Page.class)
if (getPage != null) {
showLink = showLink + ".html"
if (fragment.length() > 0) {
url += "#"+fragment;
}
}
}
} else {
//do something else
}
提前感谢您的帮助!
答案 0 :(得分:1)
这对嵌套没有帮助,但是有一些地方可以利用Groovy使代码更紧凑。我添加了一些解释性评论
if (!textOverlay) {
textType = ""
// null is considered false, so no need to explicitly check for null
if (url) {
// getResourceResolver() replaced by resourceResolver
// Page and Page.class are the same thing
Page getPage = resource.resourceResolver.getResource(url).adaptTo(Page)
// Groovy truth
if (getPage) {
// use String concatenation operator (also works in Java)
showLink += ".html"
// non-empty strings evaluate to true
if (fragment) {
// GString instead of string concatenation
url += "#$fragment"
}
}
}
} else {
//do something else
}