我有两个班:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ClassA {
private Integer id;
private String created_at;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ClassB extends ClassA {
private Boolean yesNo;
private Commit commit;
}
我希望ClassB
拥有来自CLassA
的所有字段。现在我启动一个ClassB
并尝试为其赋值:
ClassB classB = new ClassB();
classB.setCreated_at("01/01/2023");
System.out.println(classB);
但是B类中没有created_at
值,为什么?如何在classB
中设置created_at
而不重新定义所有ClassA
字段?
2条答案
按热度按时间ryoqjall1#
nfs0ujit2#
必须使用
protected
定义ClassA的字段。所以它们将在子类B中继承。你也可以使用@Setter
注解来定义setter方法,或者自己手动定义它们。如果你也需要getter方法,你应该使用@Getter
注解。