gpt4 book ai didi

java - 交换机的 "unreachable"错误是什么?

转载 作者:行者123 更新时间:2023-11-29 06:55:07 25 4
gpt4 key购买 nike

Eclipse 强制我对任何 switch 使用 default 案例,包括那些列出所有声明的 enum 值的案例,据称是因为语言规范 [ 1 ].这是不幸的,因为并行开发项目的 Android Studio 不会,并且自然会警告我所有 switches 如果 enum 是变了。虽然我更喜欢后一种行为,因为前者使 enum 更改实际上 更多 容易出错(参见下面的示例),但我无法选择,所以我需要找到对两者都正确的方法。我想如果代码中有一个地方在任何情况下都应该保持无法访问,但仍然不能删除该行,那么抛出一个 Error 似乎是自然而然的事情。但是哪一个,是否有一个普遍接受的子类用于这种情况(可能扩展到其他“强制”无法到达的地方)?或者只是为了它而简单地抛出一个快速而肮脏的 new Error("enum name") 而不是我自己写一个永远不会被使用的错误是可以接受的吗?

在例子中:

public static enum Color {
RED,
GREEN,
BLUE;

@Override
public String toString() {
switch(this) {
case RED:
return "Red";
case GREEN:
return "Green";
case BLUE:
return "Blue";
default:
/* never reached */
throw new ThisCanNeverHappenError();
}
}
}

WHITE 添加到 enum 使这个 switch 以及整个代码中可能有更多的错误源在流控制发现它们时静默就好了。

最佳答案

Eclipse Bugzilla/Bug 374605 中对此进行了长时间的讨论。 .

最终结果是这是一个可配置的警告,可以禁用。

enter image description here

将下拉列表从警告更改为忽略

关于java - 交换机的 "unreachable"错误是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36015933/

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