无法在Room数据库的实体类中创建构造函数重载

时间:2019-02-08 18:05:44

标签: android android-room

如果我在会议室数据库的实体类中重载构造函数,则会遇到运行时错误。我没有在Google上搜索有关此问题的任何资源。但是,他们在开发人员网站中提到

  

注意:实体可以具有一个空的构造函数(如果相应的DAO类可以访问每个持久字段)或一个其参数包含与实体中的字段类型和名称匹配的构造函数。 Room还可以使用全部或部分构造函数,例如仅接收某些字段的构造函数。

在创建public Category(String name){this.name = name;}时,出现运行时错误。我的Category类的代码如下所示:

@Entity
public class Category {
    @PrimaryKey(autoGenerate = true)
    public int id;
    public String name;
    public int type;

    public Category(String name, int type) {
        this.name = name;
        this.type = type;
    }

    public Category(String name){
        this.name = name;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setType(int type) {
        this.type = type;
    }

    public int getId() {
        return id;
    }

    public String getName() {
       return name;
    }

    public int getType() {
        return type;
    }
}

关于这个问题,请帮助我。

1 个答案:

答案 0 :(得分:1)

Room只能与无参数的构造函数一起使用。如果您需要其他构造函数,请使用@Ignore

对其进行注释