java.lang.NoSuchMethodException: userAuth.User.()

前端 未结 4 1550
小蘑菇
小蘑菇 2020-12-10 00:13

I have the class with validation:

public class User {
    @Size(min=3, max=20, message=\"User name must be between 3 and 20 characters long\")
    @Pattern(r         


        
相关标签:
4条回答
  • 2020-12-10 00:49

    The message java.lang.NoSuchMethodException: userAuth.User.<init>() means that someone tried to call a constructor without any parameters. Adding a default constructor should solve this problem:

    public class User {
    
        public User() {
    
        }
    
        ..
    }
    
    0 讨论(0)
  • 2020-12-10 00:51

    If the User class is a non-static inner class of another class (e.g. UserAuth), then the message could arise if the User class is attempted to be instantiated before the external class is instantiated. In this case the null-arg constructor might be there in the code but will not be found, since the external class does not exist yet. A solution could be to extract the inner class into an independent class, to make it static or to ensure the initialization of the external class happens before that of the inner class.

    0 讨论(0)
  • 2020-12-10 01:14

    Add constructor without parameters:

    public class User {
      ...
      public User() {}
      ...
    }
    
    0 讨论(0)
  • 2020-12-10 01:16

    I think the answer of adding a default no-args constructor is clear. However, one must also think about the visibility of the latter constructor. The previous answers show the use of a public no-args default constructor. Is the public visibility relevant with respect to the class' logic?

    As a matter of fact, Hibernate doesn't require a public no-args constructor. One can still choose its visibility.

    I would therefore recommend to take great care of the constructor's visibility (private/public/protected/default). Choose the adequate one. For example, if no one should be able to call this no args constructor, choose a private visibility like so:

    public class User {
      ...
      private User() {}
      ...
    }
    
    0 讨论(0)
提交回复
热议问题