1

如何在 Android Studio 中配置 Assert/Check 方法?

我使用 Mosby MVP 框架,在 Presenter 中我经常使用这种模式:

if (isViewAttached()) {
    getView().someViewMethod();
}

getView()标记为@Nullable,所以 Android Studio 向我显示警告method invocation 'someViewMethod' could produce NullPointerException。它不明白我以前检查过它。

我找到了关于配置断言/检查方法的绝妙答案:https ://stackoverflow.com/a/19319326/1263771

但是在新鲜的Android Studio中不能这样做,因为它有不同的设置界面。那么,如何在最后一个 Studio 中做到这一点呢?

4

2 回答 2

0

目前最简单的方法是使用

V view = getView();
if (view != null){ // instead of isViewAttached()
   ...
}

在 Mosby 3.0 的下一个主要版本中很可能@Nullable会删除该注释

于 2016-10-05T08:02:12.973 回答
0

完全同意你@tse。这是一个绝妙的答案,但已经过时了。

但我找到了一个有用的解决方案。您必须将 isViewAttached() 方法设为静态并将视图作为参数发送。

protected static boolean isViewAttached(final View view) {
    return view != null && view.isAttached();
}

if (isViewAttached(getView())) {
   getView().someViewMethod();
}
于 2018-12-06T13:21:19.167 回答