Android Studio 无法识别 setter 和 getter

Android Studio not recognizing setter and getter

我一直在尝试使用 Room 从 SQLite 数据库中读取数据,但它一直给我错误提示,即使在我使用之后也无法找到数据对象 class 的 getter 和 setter Android Studio 为字段自动生成的 getter 和 setter。

我也收到错误:错误:实体和 Pojos 必须有一个可用的 public 构造函数。

这是我的代码:

package mergerobotics.memo.backend.Room;
import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity;
import android.arch.persistence.room.PrimaryKey;
import android.support.annotation.NonNull;
import android.arch.persistence.room.Database;


@Entity(tableName = "competitions")
public class CompetitionsEntity {

    @NonNull

    @PrimaryKey
    private String mId;

    @ColumnInfo(name = "competition")
    private String mCompName;

    @ColumnInfo(name = "year")
    private String mCompYear;

    public CompetitionsEntity(String Id, String CompName, String CompYear){
        this.mCompName = CompName;
        this.mCompYear = CompYear;
        this.mId = Id;
    }

    @NonNull
    public String getmId() {
        return mId;
    }

    public void setmId(@NonNull String mId) {
        this.mId = mId;
    }

    public String getmCompName() {
        return mCompName;
    }

    public void setmCompName(String mCompName) {
        this.mCompName = mCompName;
    }

    public String getmCompYear() {
        return mCompYear;
    }

    public void setmCompYear(String mCompYear) {
        this.mCompYear = mCompYear;
    }

}

更改构造函数参数中的变量名称以匹配上面class中声明的变量名称。 您的构造函数应如下所示:

public CompetitionsEntity(String mId, String mCompName, String mCompYear){
        this.mCompName = mCompName;
        this.mCompYear = mCompYear;
        this.mId = mId;
    }`

按照以下步骤在您的 Android Studio 中安装 Lombok 插件:

File -> Settings -> Plugins -> Search Lombok

安装插件并重启IDE