在另一个字段的setter中调用一个字段中的setter



我想在初始化另一个字段后立即初始化一个字段,如下代码所示:

@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);
}
}

最新更新