No Java 21 e 23, java.net.InetAddress
é declarado
public sealed class InetAddress implements Serializable permits Inet4Address, Inet6Address {
Entretanto, o seguinte código:
switch (addr) {
case Inet4Address a -> ...;
case Inet6Address a -> ...;
};
não compila com:
the switch expression does not cover all possible input values
Estou esquecendo de alguma coisa ou isso é um bug do Java?
O código fornecido não possui um caso para
InetAddress
si mesmo:Observe que queremos colocar
InetAddress
como último caso, pois, caso contrário, os outros dois casos ficariam inacessíveis.