Java Room:使用将ArrayList扩展为实体的类

Java Room:使用将ArrayList扩展为实体的类,java,android,inheritance,arraylist,android-room,Java,Android,Inheritance,Arraylist,Android Room,我正在使用Room持久性库制作一个Android应用程序。我有一个类,扩展了ArrayList类,如下所示: @Entity(tableName = "the_table_name") public class MyDemoClass<E extends AnotherDemoClass> extends ArrayList<E> { @PrimaryKey @NonNull @ColumnInfo(name = "id") private String

我正在使用Room持久性库制作一个Android应用程序。我有一个类,
扩展了
ArrayList
类,如下所示:

@Entity(tableName = "the_table_name")
public class MyDemoClass<E extends AnotherDemoClass> extends ArrayList<E> {

  @PrimaryKey
  @NonNull
  @ColumnInfo(name = "id")
  private String id;

  @ColumnInfo(name = "title")
  private String title;

  @ColumnInfo(name = "creationdate")
  private Date creationDate;

  // Other stuff
}
如果你的答案有任何帮助,请与我分享

我想使用MyDemoClass作为播放列表。我会将歌曲添加到此播放列表,并将其保存在数据库中

MyDemoClass
将是一个普通的ol'Java对象(POJO),并且将具有与播放列表的简单属性相对应的字段,例如
字符串
,该字符串将用作用户可以在播放列表列表中提供和查看的名称
MyDemoClass
将不是
ArrayList
的子类

歌曲
将是另一个POJO,其字段对应于歌曲的简单属性,例如其标题为
字符串

由于一个播放列表可以有多首歌曲,并且一首歌曲可以出现在多个播放列表中,因此您需要创建一个表示该加入的实体,并将外键关系返回到播放列表和歌曲实体


外键关系的使用在本文中略作介绍。任何花大量时间在房间里的书都应该包括它。例如,这里是(from)。

请阅读“如何创建”一文。然后使用链接改进您的问题(不要通过评论添加更多信息)。否则,我们无法回答您的问题并帮助您。请不要给出你的代码片段,展示所有相关部分。比如给出错误的行和上下文。除此之外,你可能根本不理解这些泛型的含义。所以:你应该多研究一下这个话题;-)你真的是想把
@Entity
放在
MyDemoClass
上吗?如果是这样,您希望SQLite表与这个类对应的样子是什么?Hi@GhostCat,如果您使用我刚才给出的代码,您将能够重现这个问题:D@CommonsWare是的,房间似乎不接受这样的课程。你知道我如何解决这个问题吗?谢谢你的回答,如果有帮助的话,我会调查并接受你的回答!非常感谢@commonware,我在谷歌上搜索了“房间里的M:N关系”,找到了一个非常好的教程。把它推荐给在房间里挣扎的每个人
error: cannot find symbol
        _result = new MyDemoClass<E>();
                                  ^
  symbol:   class E
  location: class MyDemoClassDao_Impl
@Dao
public interface MyDemoClassDao {

  @Insert(onConflict = OnConflictStrategy.REPLACE)
  void insert(MyDemoClass<AnotherDemoClass> myDemoClass);

}