我想在初始化另一个字段后立即初始化一个字段,如下代码所示:
@Setter
class Person {
private String fullName;
private String shortName;
public void setFullName(String fullName) {
this.fullName = fullName;
setShortName();
}
private void setShortName() {
this.shortName = this.fullName.substring(0, 1);
}
}
废弃shortName
字段并使用getter返回所需值的方法是不可接受的。我需要这个字段,因为我将对象作为JSON对象传输到前端(我想在那里打印shortName
(。
此外,我的类使用来自Lombok框架的@Setter
注释。因此,我的类的用户将能够使用带有一个参数的所需setter。同时,setShortName()
方法是私有的(正如@shmosel建议的那样(。
问题仍然悬而未决:在setFullName(String fullName)
中调用shortName
的setter是个好主意吗?
做到这一点的最佳方法是什么?
class Person {
private String fullName;
private String shortName;
public Person(String fullName){
this.fullName = fullName;
this.shortName = fullName.substring(0, 1);
}
}