Android Studio не распознает сеттер и геттер - PullRequest
0 голосов
/ 02 февраля 2019

Я пытался использовать Room для чтения из базы данных SQLite, и он постоянно выдавал мне ошибки из-за невозможности найти геттеры и сеттеры для класса объекта данных даже после того, как я использовал автоматически сгенерированные геттеры Android Studio исеттеры для полей.

Я также получаю сообщение об ошибке: ошибка: у сущностей и Pojos должен быть общедоступный конструктор.

Вот мой код:

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;
    }

}

1 Ответ

0 голосов
/ 02 февраля 2019

Измените имена переменных в параметрах конструктора, чтобы они соответствовали именам переменных, объявленным в классе выше.Ваш конструктор должен выглядеть так:

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