Комната не находит метод установки для сущности - PullRequest
0 голосов
/ 24 марта 2019

Комната не находит метод setType, определенный в родительском классе. Дает не может найти установщик для ошибки поля во время компиляции.

Родительский класс

public class Data {
    private int type = -1;
    public Data() {

    }

    public int getType() {
        return type;
    }

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

Детский класс

@Entity
public class Log extends Data {

    @PrimaryKey(autoGenerate = true)
    public int id;

    public Log() {
    }
}

Ответы [ 2 ]

0 голосов
/ 17 мая 2019

Если вы хотите сохранить шаблон компоновщика, вы можете рассмотреть возможность использования внутреннего статического класса в этом отношении следующим образом (вам не нужен пустой конструктор, который добавлен неявно):

public class Data {
    private int type = -1;

    public int getType() {
        return type;
    }

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

    public static class Builder {
        private Data data = new Data();

        public Builder setType(int type) {
            data.setType(type);
            return this;
        }

        public Data build() {
            return data;
        }
    }     
}

Теперь для создания класса данных вы можете сделать:

Data data = new Data.Builder()
        .setType(10)
        .build();
0 голосов
/ 24 марта 2019

Обычно установщики не возвращают значения.

Измените setType() метод на:

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

P.S. Очевидно, что возвращать тот же экземпляр объекта Data здесь бесполезно, так как вы вызываете метод для этого объекта и уже имеете его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...