在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
}

现在,雇员既有一个参数化的构造函数,也有一个默认的构造函数.

Java相关问答推荐

根据对象和值的参数将映射<;T、值&>转换为列表<;T&>

Kubernetes的Java客户端检索状态.处于终止状态的Pod的阶段';正在运行';

为什么我的ArrayList索引的索引总是返回-1?

确定Java中Math.Ranb()输出的上限

在bash中将数组作为Java程序的参数传递

名称冲突具有相同的擦除

为什么我的在一个范围内寻找素数的程序不能像S所期望的那样工作

基于调车场算法的科学计算器

无法使用ApacheSpark依赖项构建JavaFX应用程序

有没有更快的方法在N个容器中删除重复项?

Jolt变换JSON数组问题

在处理2个映射表时,没有更多的数据可从套接字读取

如何在JUNIT测试中覆盖ExecutorService?

如何在SWT菜单项文本中保留@字符

在缺少字段时使用Jackson With Options生成Optional.Empty()

从字节数组切换到JakartaMail org.springframework.mail.javamail.JavaMailSender InputStreamResource

如何使用我的RLE程序解决此问题

ReturnedRect在升级后反转

当我try 返回可选时,Mock无法正常工作

为什么 Random() 的行为不符合预期?