Spring Boot 如何在Java中使用布尔值来验证True和False的确切值?

q43xntqr  于 2022-11-05  发布在  Spring
关注(0)|答案(5)|浏览(820)

要求是当用户给定的activeState值不是true或false时得到一个错误。如果用户给定true或false,代码应该给出“passed”作为输出,并且除了true或false之外的任何其他输入应该给出“failed”作为输出。
这是我的代码-
第一个
根据我的观察,只有当用户给出有效的输入,即True或False时,代码才会给出所需的输出。没有任何输出。2它既没有给出任何错误,也没有任何输出,只是空白。3没有生成任何响应。
我已经检查了通过更改输入字段的数据类型来解决问题的解决方案,但是我无法将activeState的数据类型从Boolean更改为String。是否有任何方法可以验证activeState,以便它可以验证所有输入值并根据需要生成输出,而无需更改数据类型?

fkaflof6

fkaflof61#

简单的空值安全布尔值检查方法。如果b不为空值,则返回布尔值。如果b为空值,则返回false。

boolean nullSafeBoolCheck(Boolean b) {
    return Optional.ofNullable(b).orElse(false);
}
xhv8bpkk

xhv8bpkk2#

如果将参数保留为布尔值,则只能将true、false或null作为参数传递。只有选择使用字符串才能解决问题

zxlwwiss

zxlwwiss3#

基元boolean具有两种可能的状态:

  • true
  • false

这些是*而不是 * 文本值,不是String。这些值表示“正确性”和“错误性”概念。
Boolean(注意大写的“B”)类 Package 了一个基本类型boolean的值。这种类型的对象引用可能不指向任何对象。因此,Boolean可能计算为三个可能值中的任何一个:

  • true
  • false
  • null

因此,根据第一段中所述的要求,整个方法可以由以下三个部分组成:

public static String isActiveStateValid ( Boolean b ){
    return Objects.isNull( b ) ? "Failed" : "Passed" ;
}
jhiyze9q

jhiyze9q4#

所以,Boolean的值只能有三个值:nulltruefalse。因此,如果没有双精度浮点数,您可以使用以下代码重写代码:

public static boolean isActive(Boolean activeState){
    return activeState != null;
}

要检查Spring中的用户输出,你应该处理异常。例如,如果你在控制器层,你可以定义一个用@ErrorHandler(exception=Exception.clsss) smth注解的方法。
如果你提供一个相关的代码,让我清楚用户是如何证明错误值的,我会给予你更有说服力的答案(这是一个REST调用吗)?

tv6aics1

tv6aics15#

public static String validateIsActive(final String userInput) {
 return new Boolean(userInput) ? "passed" : "failed";
}

因为所用的构造函数Boolean只返回布尔值.TRUE,如果自变量不为null且等于(忽略大小写)“true”。

相关问题