在 Java 21 和 23 中,java.net.InetAddress
声明为
public sealed class InetAddress implements Serializable permits Inet4Address, Inet6Address {
但是,以下代码:
switch (addr) {
case Inet4Address a -> ...;
case Inet6Address a -> ...;
};
无法编译:
the switch expression does not cover all possible input values
是我遗漏了什么吗,或者这是一个 Java 错误?
所提供的代码本身缺少一个案例
InetAddress
:请注意,我们要将其
InetAddress
作为最后一种情况,因为否则会导致其他两种情况无法解决。