在Spring boot中,如果我们正在创建一个POJO类,而我们最终只创建一个参数化的构造函数,而不是任何默认的构造函数,那么Java将抛出错误,为什么会发生这种情况,如果Java默认提供了一个非参数化的构造函数,为什么我仍然需要手动实现它?
我try 不为POJO创建非参数化构造函数,当我在另一个类中创建POJO类的对象时,它抛出了一个错误.
在Spring boot中,如果我们正在创建一个POJO类,而我们最终只创建一个参数化的构造函数,而不是任何默认的构造函数,那么Java将抛出错误,为什么会发生这种情况,如果Java默认提供了一个非参数化的构造函数,为什么我仍然需要手动实现它?
我try 不为POJO创建非参数化构造函数,当我在另一个类中创建POJO类的对象时,它抛出了一个错误.
在Java中,如果在类中没有显式地提供任何构造函数,Java会提供默认构造函数.但是,这条规则有一个例外.如果在类中明确定义了任何构造函数,Java不会为您提供默认构造函数.
public class Employee{
// No constructor defined explicitly
// Other class members and methods
}
在这种情况下,由于没有显式定义构造函数,Java将为Employee类提供默认构造函数.
但是,如果你在类中定义了任何构造函数,那么Java不会提供默认构造函数.例如:
public class Employee{
String name;
public Employee(String name) {
// Constructor with parameter
}
// Other class members and methods
}
在这种情况下,由于构造函数是显式定义的(Employee(String x)),Java不会为Employee提供默认构造函数.如果你需要一个默认的构造函数和参数化构造函数,你需要显式地定义它:
public class Employee{
String x
public Employee(String name) {
// Constructor with parameter
}
public Employee() {
// Default constructor
}
// Other class members and methods
}
现在,雇员既有一个参数化的构造函数,也有一个默认的构造函数.