min*_*pif 31 java android intellij-idea android-studio
这个:
@Nullable
Item[] mItems;
public Item getItem(int position) {
return mItems[position];
}
Run Code Online (Sandbox Code Playgroud)
产生警告:
Array access 'mItems[position]' may produce NullPointerException
Run Code Online (Sandbox Code Playgroud)
我想压制这个警告(我知道getItem()如果mItems为null 则不会被调用).
我尝试过使用以下注释:
@SuppressWarnings({"NullableProblems"})@SuppressWarnings({"null"})以及//noinspection符号,但他们都没有工作.
使用@SuppressWarnings({"all"})作品,但显然不是我想要的.
当我点击alt+时enter,Android Studio不提供任何抑制选项,只是添加(无用)空检查的选项.
小智 48
这对我有用,但不确定为什么AS会想要使用常数条件作为抑制器.我认为它与skip null检查有关,因为它是一个常量条件(即,它总是不为null).
@Nullable
Item[] mItems;
@SuppressWarnings("ConstantConditions")
public Item getItem(int position) {
return mItems[position];
}
Run Code Online (Sandbox Code Playgroud)
sam*_*sam 16
如果您希望防止Android Studio在将这些警告保留在编译器中时使用这些警告,只需转到设置 - >编辑器 - >检查 - >常量条件和例外,然后取消选中它.
如果您想完全删除它,请使用其他答案建议的正确SuppressWarnings:
@SuppressWarnings("ConstantConditions")
Run Code Online (Sandbox Code Playgroud)
小智 6
对我来说@SuppressWarnings没有用.我只是assert在警告之前添加声明以使其消失.
您的代码应如下所示:
@Nullable
Item[] mItems;
public Item getItem(int position) {
assert mItems != null;
return mItems[position];
}
Run Code Online (Sandbox Code Playgroud)
我知道你说你确定getItem()如果mItems是的话不会被召唤null.但是,检查员在调用函数之前不会考虑您已经检查过,因此警告.
或者你可以离开它,因为mItems = null永远不会发生.但是你的代码看起来有点混乱,对我来说这很烦人.
| 归档时间: |
|
| 查看次数: |
12695 次 |
| 最近记录: |