相关疑难解决方法(0)

Java中布尔值和布尔值的默认值

Java中的boolean(primitive)和Boolean(primitive wrapper)的默认值是什么?

java boolean default-value

240
推荐指数
6
解决办法
38万
查看次数

safeUnbox()不能被反转

我正在尝试消除我的Android应用程序的所有警告,其中之一就是:

viewModel.value是一个盒装字段,但需要取消装箱才能执行android:checked.这可能会导致NPE,因此数据绑定将安全地取消它.您可以更改表达式并使用safeUnbox()显式包装viewModel.value以防止出现警告

其中value是ObservableField来自超类的泛型:

public abstract class BaseDataTypeViewModel<T> extends BaseObservable  {
    public final ObservableField<T> value = new ObservableField<>();
    ...
}
Run Code Online (Sandbox Code Playgroud)

并在某处作为一个扩展Boolean:

public class CheckBooleanDataTypeViewModel extends BaseDataTypeViewModel<Boolean> {
    ...
}
Run Code Online (Sandbox Code Playgroud)

我看到数据绑定 - safeUnbox警告发生警告,因为这是一个Boolean而不是一个boolean,所以我试图添加这个:android:checked="@={safeUnbox(viewModel.value)}"而不是android:checked="@={viewModel.value}"然后我得到一个错误说我无法反转safeUnbox()方法.

****/数据绑定错误****msg:表达式android.databinding.DynamicUtil.safeUnbox(viewModelValue)无法反转:方法safeUnbox没有反转,必须在方法中添加@InverseMethod注释才能指示在双向绑定表达式中使用它时应该使用哪个方法

我正确地理解了2个分离的问题,但是我必须忍受警告以避免错误,或者他们是避免警告和错误的解决方案吗?这@InverseMethod是怎么回事?我没有设法添加这个注释,因为该方法来自android包.

android warnings android-databinding

4
推荐指数
1
解决办法
6194
查看次数