gpt4 book ai didi

Java OO 设计——将(键,值)对与 boolean 变量的值相关联

转载 作者:行者123 更新时间:2023-12-01 15:23:58 25 4
gpt4 key购买 nike

现在我的类看起来像这样:

private boolean hungry;
private boolean sleepy;
private boolean happy;

...

private setState(List<KeyValuePair> pairs) {
for (KeyValuePair pair : pairs) {
String key = pair.getKey();
String value = pair.getValue();

if (key.equals("hunger") && value.equals("Y")) hungry = true;
if (key.equals("tired") && value.equals("Y")) sleepy=true;
if (key.equals("sad") && value.equals("N")) happy = true;
}
}

这很好,但非常依赖于这个特定的条件逻辑。不幸的是我无法改变 KeyValuePair 的想法(它是外部的)

让(键,值)对将适当的变量设置为 true 的更可靠的方法是什么? (永远真实,永不虚假)

我希望它易于阅读且可扩展。

我唯一能想到的就是制作一个Map<Map<String,String>,String> ,这很糟糕,特别是因为我必须在运行时静态构造。

有什么想法吗?

最佳答案

怎么样:

private setState(List<KeyValuePair> pairs) {
for (KeyValuePair pair : pairs) {
String key = pair.getKey();
String value = pair.getValue();

hungry = (key.equals("hunger") && value.equals("Y")) || hungry;
sleepy = (key.equals("tired") && value.equals("Y")) || sleepy;
happy = (key.equals("sad") && value.equals("N")) || happy;
}
}

如果任何状态的计算结果为true,则无论其他迭代如何,它都将保持为真。就使这变得更简单(删除逻辑)而言,鉴于您那里有 map 和列表的奇怪混合,我不知道如何做到这一点。

关于Java OO 设计——将(键,值)对与 boolean 变量的值相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10455081/

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