[英]How to suppress warning 'cannot resolve method' because you generate the method using annotation?
[英]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
並從那里抑制它。
編輯:格式化
當您將 mController 注釋為 Nullable 時,編譯器會嘗試警告您在調用 object 上的任何操作之前檢查 mController 是否不是 null。
您可以簡單地在條件中添加 null 檢查。
if (isControllerReady() && mController != null && mController.canDoSomething()) {
mController.doSomething();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.