Boolean tmp;//临时变量,用来满足lambda表达式的要求 switch (type) { case "change": tmp= signal ? change.add(uniqueId) : change.remove(uniqueId); break; case "call": tmp= signal ? call.add(uniqueId) : call.remove(uniqueId); break; case "help": tmp= signal ? help.add(uniqueId) : help.remove(uniqueId); break; default: break; }怎么优化
时间: 2023-06-23 15:08:13 浏览: 70
基本概念:https://www.youtube.comwatch?v = oYXivKMSEqM的一些示例
在这段代码中,可以使用Java 8引入的Optional类来避免使用临时变量。同时,可以将重复的代码提取出来,使代码更加简洁。具体实现如下:
```
Optional<Set<String>> setOptional = Optional.empty();
switch (type) {
case "change":
setOptional = Optional.of(change);
break;
case "call":
setOptional = Optional.of(call);
break;
case "help":
setOptional = Optional.of(help);
break;
default:
break;
}
setOptional.ifPresent(set -> {
if (signal) {
set.add(uniqueId);
} else {
set.remove(uniqueId);
}
});
```
这段代码中,首先使用Optional类创建一个空对象,然后根据type的值,将对应的Set对象封装到Optional中。接着,使用ifPresent方法来检查Optional对象中是否存在Set对象,如果存在,则对Set对象进行操作。这样可以避免使用临时变量,并且代码更加简洁易读。
阅读全文