【发布时间】:2021-12-07 07:51:10
【问题描述】:
我目前有一个名为 UserSettings 的对象,其中包含许多用户偏好变量。
在另一个名为playerLabels 的类中,我像这样实例化对象:
public static UserSettings settings = new UserSettings();
在第三类中,我从文件中读取并通过执行(例如)playerLabels.settings.setToggled(true); 来编辑设置对象
我在设置文件中有许多布尔值,其中一些我想切换(打开->关闭或关闭->打开)。 从我的角度来看,有三种方法可以做到这一点:
playerLabels.settings.toggled = !playerLabels.settings.toggled;playerLabels.settings.setToggled(!playerLabels.settings.getToggled());- 在
settings中为每个布尔值创建一个切换方法
我学会了在 java 中使用 setter 和 getter,而不是直接访问变量,这就是我不想做第一个的原因。
第二个有点长,感觉很笨拙,但如果是这样的话,那很好。
第三种方法为每个布尔值创建方法会很耗时。
我感觉我存储用户首选项的方法并不理想,因为我正在访问另一个不必要的类 (playerLabels) 来编辑设置。如果有更好的方法以我想要的方式存储变量,那将很有帮助。
谢谢
用户设置:
public class UserSettings {
private boolean toggled = true;
private float height = 0f;
private boolean shadow = true;
private boolean personal = false;
public boolean isToggled() {
return toggled;
}
public void setToggled(boolean toggled) {
this.toggled = toggled;
}
public float getHeight() {
return height;
}
public void setHeight(float height) {
this.height = height;
}
public boolean isShadow() {
return shadow;
}
public void setShadow(boolean shadow) {
this.shadow = shadow;
}
public boolean isPersonal() {
return personal;
}
public void setPersonal(boolean personal) {
this.personal = personal;
}
}
【问题讨论】:
-
其实 getter 和 setter 比 playerLabels.settings.toggled = !playerLabels.settings.toggled;