将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语句与声纳中的一个括起来的主要内容,如果未能解决你的问题,请参考以下文章