gpt4 book ai didi

java - 如何在java中使用getter保护类中的私有(private)字段

转载 作者:行者123 更新时间:2023-11-30 07:03:06 25 4
gpt4 key购买 nike

我有以下代码。

public class GetterTest {

public static void main(String[] args) {
Car car = new Car();

StringBuilder wheel = car.getWheel();
wheel.append("asd");

System.out.println(car.getWheel());
}
}

class Car {

private StringBuilder wheel;

public Car() {
wheel = new StringBuilder("a");
}

public StringBuilder getWheel() {
return wheel;
}

public void setWheel(StringBuilder wheel) {
this.wheel = wheel;
}

}

这里的问题是,即使我有一个 getter,它也不保护变量,并且在使用它之后会发生变化。如何更好地保护变量?

最佳答案

您不应返回 StringBuilder,而应返回值。这将创建一个新的 String,它不再连接到您的支持 StringBuilder

public String getWheel() {
return wheel.toString();
}

但是如果你真的想返回一个 StringBuilder,你可以用当前的数据创建一个新的,基本上断开两个实例:

public StringBuilder getWheel() {
return new StringBuilder(wheel.toString());
}

关于java - 如何在java中使用getter保护类中的私有(private)字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28648533/

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