将if语句与声纳中的一个括起来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将if语句与声纳中的一个括起来相关的知识,希望对你有一定的参考价值。

为什么声纳显示下面的代码有重大问题,并说一句,如果用一个括号括起来,则使此语句失效

如果我这样做,将会出现功能性问题。我该如何解决此问题

代码

    if (Optional.ofNullable(baseOffersRequest.getCreditClass()).isPresent()) 
            if (!baseOffersRequest.getCreditClass().trim().equalsIgnoreCase("High")
                    && !baseOffersRequest.getCreditClass().trim().equalsIgnoreCase("Low")
                    && !baseOffersRequest.getCreditClass().trim().equalsIgnoreCase("Medium")
                    && !baseOffersRequest.getCreditClass().trim().equalsIgnoreCase("Unknown")) 
                errors.add(new Error("EPO_CATALOG_ERR_04", "Invalid Credit Class in the Request."));
            
        
答案

Sonar建议在这里做这样的事情:

if (Optional.ofNullable(baseOffersRequest.getCreditClass()).isPresent()) && (!baseOffersRequest.getCreditClass().trim().equalsIgnoreCase("High")
                && !baseOffersRequest.getCreditClass().trim().equalsIgnoreCase("Low")
                && !baseOffersRequest.getCreditClass().trim().equalsIgnoreCase("Medium")
                && !baseOffersRequest.getCreditClass().trim().equalsIgnoreCase("Unknown")) 
            errors.add(new Error("EPO_CATALOG_ERR_04", "Invalid Credit Class in the Request."));


这里没有功能性问题,因为没有多余的if语句也可以实现同样的功能。

另一答案

如果在isPresent()循环中为if编写else案例,则不会抛出这样的错误。由于isPresent()循环中只有一种情况,建议您在一个if循环中添加单个条件检查。]

我认为建议您根据编写的代码以这种方式编写:

 if (Optional.ofNullable(baseOffersRequest.getCreditClass()).isPresent()
            && !baseOffersRequest.getCreditClass().trim().equalsIgnoreCase("High")
                    && !baseOffersRequest.getCreditClass().trim().equalsIgnoreCase("Low")
                    && !baseOffersRequest.getCreditClass().trim().equalsIgnoreCase("Medium")
                    && !baseOffersRequest.getCreditClass().trim().equalsIgnoreCase("Unknown")) 
                errors.add(new Error("EPO_CATALOG_ERR_04", "Invalid Credit Class in the Request."));
            
另一答案

引入一个变量,并在一个if语句中检查它:

以上是关于将if语句与声纳中的一个括起来的主要内容,如果未能解决你的问题,请参考以下文章

3.php流程控制

No.6 流程控制的陷阱

shell脚本双引号大括号if语句注意事项

控制结构

控制语句

选择结构if