我在onCreateView()
的{{1}}方法中有以下代码行。它警告我Fragment
的表达式可以是createPinPresenter.setLoginResult()
。
所以我要求AS生成null
检查并执行此操作。
即使在自动生成的代码之后,AS仍然会抱怨同一个表达式null
。它显然不能在支票内null
。
我错过了一些明显的东西,或者这是一个错误?
编辑:我使用的是AS 2.2.3版本
答案 0 :(得分:0)
这是正确的,AS如何知道,例如,getParcelable()是否会返回相同的值?它只是一个语法控制,而不是语义控制。
例如,如果调用它的次数为奇数,则函数可以返回null
:在这种情况下,警告是正确的。
想一想:
if (getNextValue() != null)
value = getNextValue();
如果getNextValue()
递增索引,则在数组的末尾可以返回null
:错误非常明显,实际上控件试图在代码中阻止它
唯一的解决方案是将getParcelable(KEY_LOGIN_RESULT)
的结果存储在临时变量中,在这种情况下,AS将正确管理它。
当然......事实上这是一个自动生成的代码,我认为实际上是一个自动生成的错误,它比控件更不聪明。