我希望坚持一些数据类。我一直在调查使用Room这个,如果它只是一个独立数据类的情况,这是非常直接的。然而,我试图坚持的对象是子类,这增加了一层复杂性。
此代码尚未编译,仅为了说明目的而写作
所以用一个简单的直接课
@Entity(tableName = TABLE_NAME)
public class Event implements MyEvent {
public static final String TABLE_NAME = "events";
public static final String DATE_FIELD = "date";
@PrimaryKey(autoGenerate = true)
private int id;
private String name;
private String description;
@ColumnInfo(name = DATE_FIELD)
private LocalDateTime date;
public Event(int id, String name, String description, LocalDateTime date) {
this.id = id;
this.name = name;
this.description = description;
this.date = date;
}
@Override
public int getId() {
return id;
}
@Override
public String getName() {
return name;
}
@Override
public String getDescription() {
return description;
}
@Override
public LocalDateTime getDate() {
return date;
}
@Override
public String toString() {
return "Event{" +
"id=" + id +
", name='" + name + '\'' +
", description='" + description + '\'' +
", date=" + date +
'}';
}
public long getDaysUntil() {
return ChronoUnit.DAYS.between(LocalDateTime.now(), getDate());
}
}
这是直截了当的,但如果你有例如
public class MusicEvent extends Event implements MyEvents {
private String musicType;
private boolean supportActs;
@Override
public int getId() {
return id;
}
@Override
public String getName() {
return name;
}
@Override
public String getDescription() {
return description;
}
@Override
public LocalDateTime getDate() {
return date;
}
public void setMusicType(String musicType) {
this.musicType = musicType;
}
public String getMusicType() {
return this.musicType;
}
public void setSupportActs(boolean supportActs) {
this.supportActs = supportActs;
}
public boolean getSupportActs() {
return this.supportActs;
}
}
public interface MyEvents {
int getId();
String getName();
String getDescription();
LocalDate getDate();
}
所以我想做的是有一个事件表,我不希望有多个表,例如音乐活动,电影活动,戏剧活动。
或者如果他们都实现了MyEvents,他们都可以输入MyEvents。
我希望能够持久保存所有Event对象,并在需要时检索所有事件对象。
如果有人可以就此分享一些信息,我会非常感激。