文档意味着你可以实例化LiveData,但你可以因为它是抽象的

时间:2018-01-22 02:20:42

标签: android android-architecture-components

我跟随ViewModel example given here。当我尝试编译类似“ViewModel将:”的代码时,即:

public final LiveData<User> userLiveData = new LiveData<>();

我收到错误:

Error:(7, 52) error: LiveData is abstract; cannot be instantiated

这并不奇怪,因为LiveData确实是抽象的。

所以,我不明白他们提供的示例代码。它错了吗?或者有一个隐含的,“不,当然你不会这样做,你将继承LiveData的子类”,在这种情况下,它只是非常误导?根据您在搜索错误文本时得到的50k google hits,我不是第一个对此感到困惑的人。

注意:related question

1 个答案:

答案 0 :(得分:2)

  

我不理解他们提供的示例代码。它错了吗?或者是否有暗示,&#34;不,当然你不会这样做,你将继续将LiveData&#34;作为子类,在这种情况下,它只是非常误导?

&#34;或&#34 ;?我会使用&#34;和&#34; - 这是错误的,并且暗示这应该是LiveData的某些子类。

FWIW,我刚刚提交了an issue来解决这个问题。