【问题标题】:Why the default constructor must be provided in spring-data为什么spring-data中必须提供默认构造函数
【发布时间】:2016-11-28 17:59:29
【问题描述】:

我知道如果我没有在 spring 数据中实现默认构造函数,则会引发异常,实际上,当我必须使用数据库时,我遇到了同样的异常。我一直不明白原因。请指教

【问题讨论】:

  • 请贴一些相关代码。
  • 因为 spring 需要能够创建类的实例并通过反射或设置器设置变量。如果您不提供默认构造函数,则框架没有干净的方法来创建实例,因为它们应该传入什么值?

标签: java spring-data


【解决方案1】:

首先,为了清楚起见,它不是default constructor(你从不显式实现默认构造函数,这就是为什么它被称为默认构造函数),它是零参数构造函数。 (例如,Class#newInstance 会调用的那个。)

您需要在大多数对象/关系映射器中实现它,因为它们首先创建对象(使用零参数构造函数),然后将其各个字段值分配给它。

话虽如此,如果你不实现 any 构造函数,那么编译器将提供的默认构造函数对于大多数 OR 映射器来说应该足够了(我没有使用 spring-data)。默认情况下,它是一个零参数构造函数,具有与类相同的可访问性。但是如果你实现了任何构造函数,编译器不会为你创建默认构造函数,你必须自己提供零参数构造函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 1970-01-01
    • 2019-06-13
    • 2012-11-26
    • 2015-10-11
    • 1970-01-01
    相关资源
    最近更新 更多