Java Constructor не может быть применен к заданным типам android studio

Я новичок в java, и недавно я столкнулся с проблемой, я продолжаю получать следующую ошибку:

ошибка: конструктор User в классе User не может быть применен к заданным типам; требуется: Строка найдено: строка, строка, строка, строка причина: фактические и формальные списки аргументов различаются по длине

Я искал похожие проблемы, но я не могу понять это.

Мой конструктор:


import org.w3c.dom.Node;

public class User {
    private String name,address,phoneNumber,emailAddress;

    public User() {
    }

    public User(String name, String address, String phoneNumber, String emailAddress) {
        this.name = name;
        this.address = address;
        this.phoneNumber = phoneNumber;
        this.emailAddress = emailAddress;
    }

    public String getName() {
        return name;
    }

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

    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public String getEmailAddress() {
        return emailAddress;
    }

    public void setEmailAddress(String emailAddress) {
        this.emailAddress = emailAddress;
    }
}

Моя активность вызывает код

            @Override
            public void onClick(View v) {
                User user = new User(edt_name.getText().toString(),
                        edt_address.getText().toString(),
                        edt_email.getText().toString(),
                        phoneNumber);

Скриншот ошибки он предназначен для приема ввода в представления и передачи его в firebase.

Код кажется правильным. Ты его чистил и восстанавливал? Вы импортируете правильный класс пользователей?

Ricardo A. 13.06.2019 18:42

Попробуйте очистить свой проект. Если это не сработает, попробуйте File->Invalidate caches/restart. Ваш код кажется правильным. Android Studio иногда глючит и выдает странные ошибки.

Vedprakash Wagh 13.06.2019 18:44

Пожалуйста, проверьте import org.w3c.dom.Node; существует в Android.

Yang Yu 13.06.2019 18:45

Кстати, вы не соответствуете электронной почте и телефону. Конструктору нужен телефон в позиции 3º и электронная почта в последней.

Ricardo A. 13.06.2019 18:45

Я также пытался аннулировать и кэшировать + размещать электронную почту в последнюю очередь, но я все еще получаю ту же ошибку.

Emil C. 13.06.2019 19:43
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
5
951
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Создайте функцию вроде createUser() в функции onClick. Напишите свой код в методе createUser(). Надеюсь, поможет.

вы должны поставить phoneNumber перед emailAdresse:

 User user = new User(edt_name.getText().toString(),
                    edt_address.getText().toString(),
                    phoneNumber,
                    edt_email.getText().toString());

и, пожалуйста, убедитесь, что phoneNumer это string, а не int

Редактировать :

После того, как я проверил изображение, которое вы разместили позже, вы не используете свой собственный класс User! убедитесь, что вы импортируете свои собственные User.class

Привет, спасибо за ответ, я попробовал это, и я все еще получаю ту же самую ошибку, есть другие идеи?

Emil C. 13.06.2019 19:41

Вы проверили класс пользователя, с которым вы работаете? убедитесь, что вы импортировали свой класс пользователя

ismail alaoui 13.06.2019 20:52

Вы создаете экземпляр com.google.firebase.firestore.auth.User, а не свой собственный класс User. Вам просто нужно исправить свой импорт или вызвать в yourpackage.User

Большое вам спасибо, это была ошибка, из-за которой Бен П. объяснил это хорошо.

Emil C. 13.06.2019 22:05
Ответ принят как подходящий

В свою активность (место, где вы пытаетесь создать User объекты) вы импортировали другой User класс. Найдите строку import com.incorrect.other.User и замените ее своей import com.myapp.mycode.User.

Подсказка к тому, что это происходит, заключается в том, что на снимке экрана показано, что конструктор User ожидает получить String uid, но ни один из двух конструкторов, которые вы определили в своем собственном классе User, не упоминает uid. Таким образом, ваша активность должна относиться к некоторые другиеUser, что означает, что ваш импорт неверен.

Большое спасибо за объяснение. это исправило это.

Emil C. 13.06.2019 22:05

Другие вопросы по теме