我有一个服务方法,如果方法参数为空/空白或不是数字,则必须抛出错误。
调用者正在发送一个整数值,但在被调用方法中如何检查它是数字还是空值。
前任:
def add(value1,value2){
//have to check value1 is null/blank
//check value1 is numeric
}
caller: class.add(10,20)
任何建议将不胜感激。
更具体的是 Dan Cruz 的答案,你可以使用String.isInteger()
方法:
def isValidInteger(value) {
value.toString().isInteger()
}
assert !isValidInteger(null)
assert !isValidInteger('')
assert !isValidInteger(1.7)
assert isValidInteger(10)
但是,如果我们为我们的方法传递String
看起来像 a的 a 会发生什么Integer
:
assert !isValidInteger('10') // FAILS
我认为最简单的解决方案是使用instanceof
运算符,所有断言都是有效的:
def isValidInteger(value) {
value instanceof Integer
}
您始终可以定义参数的类型:
Number add( Number value1, Number value2 ) {
value1?.plus( value2 ?: 0 ) ?: value2 ?: 0
}
int a = 3
Integer b = 4
assert add( a, null ) == 3
assert add( null, 3 ) == 3
assert add( null, null ) == 0
assert add( a, b ) == 7
assert add( a, 4 ) == 7
assert add( 0, a ) == 3
assert add( 1, 1 ) == 2
assert add( 0, 0 ) == 0
assert add( -1, 2 ) == 1