这个问题在这里已经有答案了:
java默认构造函数(13个答案)
上个月关门了。
我知道以前在其他问题中也有类似的问题被回答过,但我发现的所有问题都不适用于我的情况,所以我决定问它。
此行给出一个错误:
User users = new User();
错误消息:
constructor User in class User cannot be applied to given types;
required: String,String,String,String
found: no arguments
reason: actual and formal argument lists differ in length
下面是我的java类文件。
public class User {
private String username;
private String pwd;
private String email;
private String role;
public User(String username, String pwd, String email, String role) {
this.username = username;
this.pwd = pwd;
this.email = email;
this.role = role;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
}
2条答案
按热度按时间xqk2d5yq1#
你的
User
构造函数接受4个参数:username
,pwd
,email
,和role
,你想用new User()
,它不提供任何参数。你应该提供:或者,创建一个不带以下形式参数的构造函数:
或者,要重用构造函数:
你可以用
null
作为默认值,但这可能只会导致NullPointerException
这是底线。iih3973s2#
只需创建另一个构造函数:
当您创建一个类时,默认情况下会为您创建这个构造函数。当你自己创建一个构造器时,这个默认的构造器就不再适合你了,你必须自己添加它。