为什么@Data和@Builder不能一起工作

我有这个简单的课程

public class ErrorDetails {
    private String param = null;
    private String moreInfo = null;
    private String reason = null;
     ...
}

重构后,我添加了@Data@Builder,但是所有实例化都不再起作用

ErrorDetails errorDetails = new ErrorDetails();
  

'ErrorDetails(java.lang.String,java.lang.String,java.lang.String)'   在不公开   'com.nordea.openbanking.payments.common.ndf.client.model.error.ErrorDetails'。   无法从外部软件包访问

如果我删除了@Builder,它将正常工作, 为什么我不能同时使用@Data@Builder

zhangyukexin 回答:为什么@Data和@Builder不能一起工作

龙目岛的@Builder must have @AllArgsConstructor为了工作

  

还应添加@AllArgsConstructor

在后台,它使用constructor with all fields

建立所有字段
  

@Builder应用于类就像您将@AllArgsConstructor(access = AccessLevel.PACKAGE)添加到该类并将@Builder注释应用于此all-args-constructor一样。仅当您自己未编写任何显式构造函数时,此方法才有效。

,

完整配置应为:

@Data
@Builder(toBuilder = true)
@AllArgsConstructor
@NoArgsConstructor
class ErrorDetails {
    private String param; // no need to initiate with null
    private String moreInfo;
    private String reason;
}
本文链接:https://www.f2er.com/3144375.html

大家都在问