我有许多设置方法的设置,并使用构造函数初始化其值,如下所示。它正在工作,但是我担心这样做是否符合正常的Java约定(在构造函数内部调用set方法是否正常?)。
我可以想到的另一种方法是调用一个空的构造函数,然后在main方法中一个接一个地调用set方法来设置值。我发现第二种方法很乏味。请提出建议,如果我所做的一切很好/是否符合Java约定,或者是否有更好的方法可以做到这一点。告诉我是否需要发布更多代码以使问题更清楚。我可以发布所有内容(如果更合理)。谢谢。
public Person(String foreName,String surName, int age, double height, String gender){
personCount++;
setForeName(foreName);
setSurName(surName);
setAge(age);
setHeight(height);
setGender(gender);
}
这不仅仅是品味问题。如果方法中没有多余的逻辑setXXX()
,则约定是直接在构造函数中分配属性:
this.foreName = foreName;
this.surName = surName;
... 等等。但如果是额外的逻辑在setXXX()
方法,那么你应该根据需要使用它们。假设调用了记录逻辑或类似逻辑:
public void setForeName(String pForeName) {
log.info("setting new foreName value: " + pForeName);
this.foreName = pForeName;
}
看看最后一行setForeName()
与执行直接分配有何相同?还要注意,调用asetXXX()
可能会带来非常非常小的性能成本(很可能是由JIT编译器进行了优化)。通常情况下,您应该首先针对可读性和清晰度进行优化,并且在此处使用直接分配的IMHO是首选。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句