如何解决歧义方法?

时间:2019-09-29 01:18:15

标签: android android-sqlite android-room

编译时收到消息

error: Ambiguous getter for Field(element=flagTest, name=flagTest,
type=boolean, affinity=INTEGER, collate=null, columnName=flagTest,
defaultValue=null, parent=null, indexed=false, nonNull=true).

实体代码为

@Entity
public class MyEntity {

    @PrimaryKey(autoGenerate = true)
    private long id;

    boolean flagTest;


    public long getId() {
        return id;
    }

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

    public boolean getFlagTest() {
        return flagTest;
    }

    public boolean isFlagTest() {
        return flagTest;
    }
}

1 个答案:

答案 0 :(得分:2)

这表示会议室不知道使用哪种方法来获取 flagTest 值。它可以在 getFlagTest isFlagtest 之间进行选择。

如果您想同时使用这两种方法,则可以使用 @Ignore 注释告诉房间忽略其中一种方法(无关紧要)。

例如

@Entity
public class MyEntity {

    @PrimaryKey(autoGenerate = true)
    private long id;

    boolean flagTest;


    public long getId() {
        return id;
    }

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

    @Ignore
    public boolean getFlagTest() {
        return flagTest;
    }

    public boolean isFlagTest() {
        return flagTest;
    }
}
  • 通常将is????用于布尔值,因为该值只能为true或false,因此 getFlagTest 方法提供了注释。
相关问题