【发布时间】:2017-06-17 02:11:12
【问题描述】:
我的Fragment 的onCreateView() 方法中有以下代码行。它警告我createPinPresenter.setLoginResult() 的表达式可以是null。
所以我要求 AS 生成 null 检查,它会这样做。
即使在自动生成代码之后,AS 仍然会抱怨相同的表达式是 null。显然支票里面不能是null。
我在这里遗漏了一些明显的东西还是这是一个错误?
编辑:我使用的是 AS 版本 2.2.3
【问题讨论】:
-
更可能不是错误,只是不够聪明,无法阅读上面的代码并查看空值检查。查看一个函数是否可以返回 null 很简单,很难解析代码并查看它是否实际检查过。
-
@GabeSechan 但是,一旦完成适当的检查,我已经看到 AS 发出警告(可能不是空值)。它不应该为此做同样的事情吗?例如,它要求将
assert expression != null转换为if(BuildConfig.DEBUG && expression) {throw new AssertionError();} -
即使这比您期望的要容易-您不是在寻找它来解析整个函数并分析上下文,而是在看一个简单的单行规则-如果调用 assert(blah),转换为 if(BuildConfig.DEBUG) 等等。您想要的更多的是功能请求而不是错误。
标签: android android-studio null warnings