Android数据绑定:ObservableArrayMap和`错误:不兼容类型:对象无法转换为...`

时间:2017-12-05 10:54:18

标签: android data-binding observable android-databinding

我正在使用布局xml中的ObservableArrayMap为我的Android应用实现数据绑定。

地图的键和值有明确定义的类型(例如ObservableArrayMap<String, Integer>但是我一直收到错误error: incompatible types: Object cannot be converted to Integer

错误的原因很明显:生成的ViewBinding Java文件完全忽略了地图类型参数的类型,并将地图声明为android.databinding.ObservableArrayMap。因此,在访问其值时,它会返回Object而不是Integer

为什么它会这样做?我得到类型在运行时被删除,但是,它必须工作,否则,在代码中定义地图类型参数的重点是什么?

什么甚至更奇怪,编译器会执行类型检查:如果要将错误类型的参数传递给布局xml中的get()方法,则会出现错误。

0 个答案:

没有答案