猿问

会议室抽象Pojo

我正在创建一个有趣的Android应用程序来跟踪支出。我正在使用Room来保留用户的数据,并且有一些POJO可以显示每日/每周/每月摘要。


这些类非常相似,因此我希望有一个抽象的POJO,其中包含重新格式化为正确格式的字段和扩展。就像是:


public abstract class PeriodInformation {


PeriodInformation(@NonNull Calendar mCalendar, Integer mPeriodSpendingCount, Float mPeriodSpendingSum) {

    this.mCalendar = mCalendar;

    this.mPeriodSpendingCount = mPeriodSpendingCount;

    this.mPeriodSpendingSum = mPeriodSpendingSum;

}


@ColumnInfo(name = "DateTime")

private final Calendar mCalendar;

@ColumnInfo(name = "SpendingCount")

private Integer mPeriodSpendingCount;

@ColumnInfo(name = "SpendingSum")

private Float mPeriodSpendingSum;


// Some other code, e.g., getters, equal override,...

}

这里的扩展名:


public class WeekInformation extends PeriodInformation{


public WeekInformation(@NonNull Calendar mCalendar, Integer mPeriodSpendingCount, Float mMonthSpendingSum) {

    super(mCalendar, mPeriodSpendingCount, mMonthSpendingSum);

}


@Override

public String getPeriodRepresentation() {

    //return representation;

}


}

但是,对于WeekInformation类,我收到以下错误消息:


错误:实体和Pojos必须具有可用的公共构造函数。您可以有一个空的构造函数或一个其参数与字段匹配的构造函数(按名称和类型)。


因此,这似乎在Room中是不可能的,因此,我很乐意得到一些建议,即如何不必过于频繁地复制相同的代码。


慕哥6287543
浏览 167回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答