簡體   English   中英

Java:抑制 NullPointerException 警告的方法注釋

[英]Java: Method annotation to suppress NullPointerException warning

我的代碼中有以下輔助方法,它斷言有關我的 class 中成員字段的一些屬性。

private @Nullable Controller mController;

private boolean isControllerReady() {
  return mController != null && mController.isReady();
}

在我的代碼的其他地方,我調用了這樣的東西......

if (isControllerReady() && mController.canDoSomething()) {
  mController.doSomething();
}

我的 Android Studio 在canDoSomething()上給我一個警告:

Method invocation 'canDoSomething' may produce 'NullPointerException'

這應該是誤報。 是否可以注釋isControllerReady以便 IDE 抑制/忽略canDoSomething上的此 NPE 警告?

我認為@SuppressWarnings注釋正是您要找的。 然后你會注釋你的方法並傳入你想要抑制的編譯器警告(或警告)。

@SuppressWarnings({"NullableProblems"})
private boolean isControllerReady() {
  return mController != null && mController.isReady();
}

或者在 Intellij 上(這應該也適用於 Android Studio),您可以在突出顯示的警告上按Alt + Enter並從那里抑制它。

請參閱https://www.jetbrains.com/help/idea/disabling-and-enabling-inspections.html?keymap=primary_xwin#suppress-inspections

編輯:格式化

當您將 mController 注釋為 Nullable 時,編譯器會嘗試警告您在調用 object 上的任何操作之前檢查 mController 是否不是 null。

您可以簡單地在條件中添加 null 檢查。

if (isControllerReady() && mController != null && mController.canDoSomething()) {
  mController.doSomething();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM