gpt4 book ai didi

Java setter 方法约定(重载 setter 可以吗?)

转载 作者:行者123 更新时间:2023-11-29 07:19:12 26 4
gpt4 key购买 nike

我有一个条件,我构造字符串 (finalValue) 的方式是基于我在输入中获得的非空值的数量。所以我想知道是否可以用一个不同的参数为字符串 (finalValue) 重载 setter 方法并根据我得到的值调用它们?这是一种糟糕的编程习惯吗?

public void setFinalString(String a){
this.finalString = a;
}

public void setFinalstring(String a, String b){
this.finalString = a + " --f " + b;
}

或者我可以有方法根据我得到的输入构造 finalString,然后为 finalString 调用 setter(这里没有重载)。

请告诉我过度加载 setter 是否可以,建议哪种方法更好?

谢谢

最佳答案

是的,这绝对是一个糟糕的方法,setter 总是应该只将传递的参数设置为封装的私有(private) ivar。

其他逻辑应该在其他地方而不是在 setter 中,尽管有时在 setter 中设置参数时会受到限制,即

public setAge(int age) {
if (age >= 0)
this.age = age;
else
this.age = 0;
}

这就是 setter 应该有的逻辑,它绝对不应该接收超过它分配给 ivar 的值。

关于Java setter 方法约定(重载 setter 可以吗?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6770961/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com