Я новичок в 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.
Попробуйте очистить свой проект. Если это не сработает, попробуйте File->Invalidate caches/restart. Ваш код кажется правильным. Android Studio иногда глючит и выдает странные ошибки.
Пожалуйста, проверьте import org.w3c.dom.Node; существует в Android.
Кстати, вы не соответствуете электронной почте и телефону. Конструктору нужен телефон в позиции 3º и электронная почта в последней.
Я также пытался аннулировать и кэшировать + размещать электронную почту в последнюю очередь, но я все еще получаю ту же ошибку.




Создайте функцию вроде 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
Привет, спасибо за ответ, я попробовал это, и я все еще получаю ту же самую ошибку, есть другие идеи?
Вы проверили класс пользователя, с которым вы работаете? убедитесь, что вы импортировали свой класс пользователя
Вы создаете экземпляр com.google.firebase.firestore.auth.User, а не свой собственный класс User. Вам просто нужно исправить свой импорт или вызвать в yourpackage.User
Большое вам спасибо, это была ошибка, из-за которой Бен П. объяснил это хорошо.
В свою активность (место, где вы пытаетесь создать User объекты) вы импортировали другой User класс. Найдите строку import com.incorrect.other.User и замените ее своей import com.myapp.mycode.User.
Подсказка к тому, что это происходит, заключается в том, что на снимке экрана показано, что конструктор User ожидает получить String uid, но ни один из двух конструкторов, которые вы определили в своем собственном классе User, не упоминает uid. Таким образом, ваша активность должна относиться к некоторые другиеUser, что означает, что ваш импорт неверен.
Большое спасибо за объяснение. это исправило это.
Код кажется правильным. Ты его чистил и восстанавливал? Вы импортируете правильный класс пользователей?