我有一個服務方法,並且如果方法參數爲空/空或不是數字,則必須拋出錯誤。檢查整數在常規中是否爲空或數字?
調用者發送一個整數值,但在調用的方法如何檢查它是數字還是空值。
例如:
def add(value1,value2){
//have to check value1 is null/blank
//check value1 is numeric
}
caller: class.add(10,20)
任何建議各地將不勝感激。
我有一個服務方法,並且如果方法參數爲空/空或不是數字,則必須拋出錯誤。檢查整數在常規中是否爲空或數字?
調用者發送一個整數值,但在調用的方法如何檢查它是數字還是空值。
例如:
def add(value1,value2){
//have to check value1 is null/blank
//check value1 is numeric
}
caller: class.add(10,20)
任何建議各地將不勝感激。
更具體的是,answer of Dan Cruz,您可以使用String.isInteger()
方法:
def isValidInteger(value) {
value.toString().isInteger()
}
assert !isValidInteger(null)
assert !isValidInteger('')
assert !isValidInteger(1.7)
assert isValidInteger(10)
但是,如果我們傳遞一個String
,看起來像一個Integer
我們的方法發生了:
assert !isValidInteger('10') // FAILS
我認爲,最簡單的辦法就是使用instanceof
運營商,所有的斷言是有效的:
def isValidInteger(value) {
value instanceof Integer
}
它的很好的例子,但斷言isValidInteger('10')應該是正確的,b'z他們可能發送Integer在字符串對象,在這種情況下,價值instanceof整數將不適用於我。 –
你總是可以定義參數的類型:
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
,但我發現int值,我不能在int值上做。 –
Groovy不使用原始類型;你是不是指'整數'?你可以使用'if(!value1 ||!value1.toString()。isNumber())... else ...'。有關Groovy中「true」/「false」評估的更多信息,請參閱[Groovy Truth](http://docs.codehaus.org/display/GROOVY/Groovy+Truth)。 –
感謝Dan,!value1.toString()。isNumber())做了這個訣竅..只是指的是Integer。 –