以下是我正在尝试运行的代码。这是我服务的一部分,该方法是从控制器调用的。现在,我想允许所有整数值> = 0并避免空值(当控制器仅传递a或b的值时可能会出现这种情况。)
int x = 10
int y = 10
boolean doSomething(int a, int b) {
String logger = ""
if(a >= 0 || a != null) {
x = a
logger += "Value of x is ${x}. "
}
if(b >= 0 || b != null) {
y = b
logger += "Value of y is ${y}. "
}
if(logger) {
log.info logger
return true
}
log.error "values not found"
return false
}
我想知道在groovy中是否有办法做到这一点。我一直面临的问题是,当只传递1个值时,另一个值会更新为0,这是我不想要的。
答案 0 :(得分:2)
int x = 10
int y = 10
boolean doSomething(Integer a, Integer b) {
String logger = ""
if(a >= 0) {
x = a
logger += "Value of x is ${x}. "
}
if(b >= 0) {
y = b
logger += "Value of y is ${y}. "
}
if(logger) {
log.info logger
return true
}
log.error "values not found"
return false
}
这是基于@ Daniel建议的最后一段代码。这里,只接受值> = 0。此外,将忽略空值。
答案 1 :(得分:1)
你只需要将0与0分开;不要依赖于时髦的事实。
if (a != null && b != null && a >= 0 && b >= 0) {
println "OK"
} else {
println "Bad arguments"
}
根据您的问题编辑和后续评论进行编辑: