Java声纳NullPointerException

时间:2018-10-09 10:57:27

标签: java nullpointerexception sonarqube

我有错

  

可能会抛出“ NullPointerException”; “ btn”在此处可以为空。

关于代码:

Button btn = getButton();
Assert.assertNotNull ("No button", btn);
btn.click();

除案例外,我如何解决此问题:

Button btn = getButton();
if (btn != null) {
  btn.click();
}

2 个答案:

答案 0 :(得分:1)

如果您使用的是java-8,那么您可以使用Optional

Optional<Button> btn = getButton();//need to let return to Optional<Button>
btn.ifPresent(b -> b.click());

答案 1 :(得分:0)

我认为Assert仅应在测试类中使用。您可以将其替换为java.util.Objects#requireNonNull(需要Java 7):

Button btn = getButton();
Objects.requireNonNull(bnt).click();

Button btn = Objects.requireNonNull(getButton());
bnt.click();