[英]Java - Validation when user enters string into boolean
當前正在使用Web服務並進行驗證,當用戶在JSON塊中輸入布爾值時,希望收到更好的錯誤消息:
JSON:
{
"name": "GAWA",
"isFree": true
}
如預期的那樣,因為滿足布爾值的標准,所以工作正常。 但是,如果用戶輸入字符串,就會出現問題。
{
"name": "GAWA",
"isFree": "gwge"
}
當前錯誤消息:
"message": "Can not deserialize value of type java.lang.Boolean from String \"rwtrt\": only \"true\" or \"false\" recognized\n at [Source: java.io.PushbackInputStream@7e9abd26; line: 14, column: 2] (through reference chain: com.velatt.dartentitlements.dto.SiteDTOExternal[\"useAppEntitlements\"])"
},
我認為這是一條if語句,大致如下:
if (isFree ...) {
throw new IllegalArgumentException("Cannot create a person without a valid boolean");
}
我可以提出什么條件的幫助?
編輯:我不希望更改它,所以如果他們輸入true,它將被轉換為布爾值,我只是想拒絕所有字符串,以獲取更好的錯誤消息。
您需要檢查對象isFree
是否為String類的實例。
嘗試這個:
if (isFree instanceof String) {
throw new IllegalArgumentException("Cannot create a person without a valid boolean");
}
它將拒絕除布爾值以外的所有其他數據類型
if (isFree instanceof Boolean == false){
throw new IllegalArgumentException("Cannot create a person without a valid boolean");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.