자바 langNoSuchMethodException: userAuth.사용자.()
저는 검증된 수업이 있습니다.
public class User {
@Size(min=3, max=20, message="User name must be between 3 and 20 characters long")
@Pattern(regexp="^[a-zA-Z0-9]+$", message="User name must be alphanumeric with no spaces")
private String name;
@Size(min=6, max=20, message="Password must be between 6 and 20 characters long")
@Pattern(regexp="^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$", message="Password must contains at least one number")
private String password;
public User(String _name, String _password){
super();
name = _name;
password = _password;
}
public String getName(){
return name;
}
public String getPassword(){
return password;
}
public void setPassword(String newPassword){
password = newPassword;
}
}
값을 검증하면 다음과 같은 메시지가 나타납니다.
SEVERE: Servlet.service() for servlet osAppServlet threw exception
java.lang.NoSuchMethodException: userAuth.User.<init>()
어디가 문제입니까?
메시지를java.lang.NoSuchMethodException: userAuth.User.<init>()
파라미터 없이 건설자에게 전화를 걸려고 했다는 뜻입니다기본 생성자를 추가하면 다음과 같은 문제가 해결됩니다.
public class User {
public User() {
}
..
}
User 클래스가 다른 클래스(예: UserAuth)의 고정적이지 않은 내부 클래스인 경우 외부 클래스가 인스턴스화되기 전에 User 클래스를 인스턴스화하려고 하면 메시지가 발생할 수 있습니다.이 경우 코드에 null-arg 생성자가 있을 수 있지만 외부 클래스가 아직 없으므로 찾을 수 없습니다.내부 클래스를 독립 클래스로 추출하여 정적으로 만들거나 외부 클래스의 초기화가 내부 클래스의 초기화보다 먼저 발생하도록 하는 것이 해결책이 될 수 있습니다.
매개변수가 없는 생성자 추가:
public class User {
...
public User() {}
...
}
기본 no-args 컨스트럭터 추가에 대한 답은 명확하다고 생각합니다.그러나 후자의 시공자의 가시성에 대해서도 생각해야 합니다.앞의 답변에서는 공용 무아그 기본 생성기의 사용을 보여줍니다.수업의 논리와 관련하여 공개적인 가시성이 관련이 있습니까?
사실, Hibernate는 공공 노아그 시공자가 필요하지 않습니다.사람은 여전히 가시성을 선택할 수 있습니다.
따라서 시공자의 가시성(프라이빗/퍼블릭/보호/디폴트)을 잘 관리할 것을 권장합니다.적절한 것을 고르십시오.예를 들어 아무도 이 no args constructor를 호출할 수 없는 경우 다음과 같은 개인 가시성을 선택합니다.
public class User {
...
private User() {}
...
}
빈에는 인수 생성자가 없어야 합니다.
언급URL : https://stackoverflow.com/questions/18023870/java-lang-nosuchmethodexception-userauth-user-init
'programing' 카테고리의 다른 글
angularjsng-disabled가 버튼에 비활성화를 추가하지 않음 (0) | 2023.09.25 |
---|---|
Amazon S3 및 CORS(Cross-Origin Resource Sharing) (0) | 2023.09.25 |
데이터 프레임의 모든 특정 값 바꾸기 (0) | 2023.09.25 |
MVC4 - 최적화가 true로 설정된 경우 번들링이 작동하지 않습니다. (0) | 2023.09.25 |
다른 열을 기준으로 열을 변환하는 파워 쿼리 (0) | 2023.09.25 |