gpt4 book ai didi

java 重构 if else

转载 作者:行者123 更新时间:2023-12-01 06:42:16 25 4
gpt4 key购买 nike

我有这个 if else 代码,我想知道是否有更有用/智能的方法来编写它:

public void saveContent() throws Exception {
if(book.isColored()) {
book.setChoosen(“1234”);
} else if (book.isAvailable()) {
book.setChosen(“23498”);
} else if (book.isAdults()) {
book.setChosen(“0562”);
} else {
ReaderResponse response = reader.getReaderResponse();
if (response != null) {
book.setChosen(response.getName());
}
} else {
book.setChosen(“4587”);
}
}
}

该方法返回 void。

最佳答案

中间引入局部变量会导致问题。解决这个问题的一种方法是引入另一种方法 - 不要害怕小方法。

public void saveContent() throws Exception {
book.setChoosen(
book.isColored() ? “1234" :
book.isAvailable() ? “23498” :
book.isAdults() ? “0562” :
readerResponse()
);
}
private String readerResponse() throws Exception {
ReaderResponse response = reader.getReaderResponse();
return response == null ? “4587” : response.getName();
}

? : 是条件运算符,通常称为三元运算符。

如果getReaderResponse没有副作用,您可以重复调用。 get 方法通常没有副作用,但我感觉这个方法可能会产生副作用。我不确定在哪里抛出Exception - 我假设它是用子类型替换的。

关于java 重构 if else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54075070/

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