我可以扩展一个简单的对象 class 来创建一个 Room 数据库对象吗?

Can i extend a simple object class to create a Room database object?

假设我有一个简单的对象class:

public class Test {

    public String teststring;

}

但是我想创建另一个对象 class,这次它将是一个房间数据库 class:

@Entity(tableName = "test_table_one")
public class TestChildOne extends Test {

    @PrimaryKey(autoGenerate = true)
    @ColumnInfo(name = "id")
    public long test_id;

}

然后,我想创建另一个 class:

@Entity(tableName = "test_table_two")
public class TestChildTwo extends Test {

    @PrimaryKey(autoGenerate = true)
    @ColumnInfo(name = "id")
    public long test_id;

}

这里的问题是父 class 的字符串 teststring 没有 @ColumnInfo 注释。事实上,我不想在父 class 中设置 @Entity 注释,因为这两个子 classes 将属于不同的表,如您所见。

那么,我可以只在父 class 中设置一个 @ColumnInfo 而不设置 @Entity 吗?那么当我创建一个对象 TestChildOne 并设置 TestChildOne.teststring 时它会起作用还是会抛出错误?

非常感谢您!

@ColumnInfo 注释即使在父 class 中也可以工作,所以即使 class 没有 @Entity 注释你也可以写 @ColumnInfo

public class Test {
     @ColumnInfo( name = "yourColumnName" )
    public String teststring;

}