【问题标题】:Android LiveData<List<User>> cast to LiveData<List<?extednds IEntity>>Android LiveData<List<User>> 转换为 LiveData<List<?extednds IEntity>>
【发布时间】:2023-04-10 19:07:01
【问题描述】:

我有一般问题,

我有 LiveData>,对象 User 实现 IEntity

如何将 LiveData> 转换为 LiveData>

  package cz.roomlivedata.entity;
  import  android.arch.persistence.room.Entity;
  import android.arch.persistence.room.Index; 
  import android.arch.persistence.room.PrimaryKey;

  @Entity(indices = {@Index(value = "id", unique = true)}) 
  public class User implements IEntity {

  @PrimaryKey(autoGenerate = true) public int id;

  private String name;

  private String name; public User(String name) { this.name = name; } 

  public String getName() { return name; } 

  public void setName(String name) { this.name = name; } 
}

【问题讨论】:

  • 添加用户类代码
  • 您说的是“用户实现 IEntity”而不是“... 扩展 IEntity”。但如果没有后者,您将无法将任何内容从一个列表添加到另一个列表中
  • @Radesh &lt;pre&gt;package cz.roomlivedata.entity; import android.arch.persistence.room.Entity; import android.arch.persistence.room.Index; import android.arch.persistence.room.PrimaryKey; @Entity(indices = {@Index(value = "id", unique = true)}) public class User implements IEntity { @PrimaryKey(autoGenerate = true) public int id; private String name; public User(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }&lt;/pre&gt;
  • @motorcb 你的问题解决了吗?
  • 这是一个很好的问题,可惜没有很好的答案

标签: android generic-list android-livedata


【解决方案1】:

这是我在使用 kotlin 时删除的方式。

abstract class X

class Y: X()

fun getValues(): MutableLiveData<out List<X>> {
    return MutableLiveData<List<Y>>()
}

out 关键字帮助了我。所以基本上inout关键字必须在java中手动完成。

【讨论】:

  • 把这个放在哪里,out 是什么。这并不能解释什么
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多