1
对于这个代码:龙目岛:生成构造函数丢失?
@Data
@Entity
@AllArgsConstructor
public class Person {
private @GeneratedValue @Id Long id;
private final String firstname;
private String middlename;
private final String lastname;
}
Lombok的(V 14年1月16日。)应产生两个构造函数。首先,由于@Data:
public Person(String firstname, String lastname) { ... }
由于@AllArgsConstructor,有也应该是:
public Person(Long id, String firstname, String middlename, String lastname);
然而,首份(参数)构造函数 “消失” 添加注释@AllArgsConstructor
时。对于@Data
的Javadoc指出:
Equivalent to @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode.
所以我错以为这两个参数构造函数应该在那里?这有一个非常简单的解决方法,因为如果没有明确加入@RequiredArgsConstructor
注释:
@Data
@Entity
@AllArgsConstructor
@RequiredArgsConstructor
public class Person {
private @GeneratedValue @Id Long id;
private final String firstname;
private String middlename;
private final String lastname;
}
两个构建函数可用。然而,这种行为对我来说毫无意义,所以我希望有人可以解释这是一个错误还是一个功能!
感谢您的澄清! – JoeG