我正在使用Java 17在IntelliJ 2022.2中进行开发。
有些情况下会显示“'switch' expression does not cover all possible input values”,但有些情况则不会。我想弄清楚为什么。
假设entityType
是一个具有3个值的枚举类型,并且我正在添加第4个值TYPE_D
。因此,我希望在使用该枚举类型的switch
语句中看到'switch' expression does not cover all possible input values
错误。
当它被显示时:
public Map<String, String> getRecordDetails() {
return switch (entityType) {
case TYPE_A -> Map.of("A","A");
case TYPE_B -> Map.of("B","B");
case TYPE_C -> Map.of("C","C");
};
}
未显示:
public String getRecordDetails() {
StringBuilder stringBuilder = new StringBuilder();
switch (entityType) {
case TYPE_A -> stringBuilder.append("A");
case TYPE_B -> stringBuilder.append("B");
case TYPE_C -> stringBuilder.append("C");
};
return stringBuilder.toString();
}
当我使用switch case并返回结果时,可以看到它与之相关,但为什么在函数内部的代码中使用switch case时却不显示?
default -> Map.of();
- Youcef LAIDANI