Java声纳NullPointerException

Java声纳NullPointerException,java,nullpointerexception,sonarqube,Java,Nullpointerexception,Sonarqube,我有错误 可以抛出“NullPointerException”;“btn”在这里可以为空 关于代码: Button btn = getButton(); Assert.assertNotNull ("No button", btn); btn.click(); 除以下情况外,我如何解决此问题: Button btn = getButton(); if (btn != null) { btn.click(); } 如果您使用的是java-8,那么您可以使用Optional Optional

我有错误

可以抛出“NullPointerException”;“btn”在这里可以为空

关于代码:

Button btn = getButton();
Assert.assertNotNull ("No button", btn);
btn.click();
除以下情况外,我如何解决此问题:

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

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

Optional<Button> btn = getButton();//need to let return to Optional<Button>
btn.ifPresent(b -> b.click());
可选btn=getButton()//需要让返回可选
b b.如果存在(b->b.click());

我认为
Assert
应该只在测试类中使用。您可以将其替换为(需要Java 7):

否则请确保getButton();方法总是发回一个按钮。
Button btn = getButton();
Objects.requireNonNull(bnt).click();
Button btn = Objects.requireNonNull(getButton());
bnt.click();