[英]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.