почему это изменяет подписи класса Java

#java #android

#java #Android

Вопрос:

У меня есть фрагменты вызова CategoryFragments, куда я добавляю имя списка catList, для которого я определяю переменную в имени класса CategoryModel, а переменная

 public class CategoryModel {
    private String docID;
    private String name;
    private int noOfTests;

    public CategoryModel() {
        this.docID = docID;
        this.name = name;
        this.noOfTests = noOfTests;
    }

    public String getDocID() {
        return docID;
    }

    public void setDocID(String docID) {
        this.docID = docID;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getNoOfTests() {
        return noOfTests;
    }

    public void setNoOfTests(int noOfTests) {
        this.noOfTests = noOfTests;
    }
}
  

но когда я пытаюсь использовать add item в моем catLIst , я получаю ошибку, которая изменяет подпись CategoryModel

вы можете видеть мой экран

Комментарии:

1. Я собираюсь рискнуть предположить, что три com.example.scorer пакета могут что-то испортить. Конечно, ваш «фиксированный» конструктор просто устанавливает поля для себя, на самом деле это ничего не меняет. Тем не менее, у вас несоответствие типов, поэтому, если он не может найти конструктор, он, вероятно, находит другой класс, чем вы думаете (или ваш кеш устарел)

2. вы можете видеть, что оба каталога CategoryModel и Fragment одинаковы, если они получили несоответствие, как я нахожу это

3. честно говоря — переименуйте пакеты. Имеют ли они значение (например ...test , ...answer , ...work )

Ответ №1:

Потому что у вас есть пустой конструктор, но внутри вас инициализируются значения с самим собой, поэтому создайте конструктор с параметрами:

 public CategoryModel(String docId, String name, int noOfTests) {
  // Init your scope variables
}