Caríssimos,
O código abaixo é de um exercício clássico de enum… compila e roda imprimindo duas vezes “Equals”, como não há import, fui procurar a documentação da classe na java.lang… não encontrei a classe enum, apenas a Enum… alguém me explicaria pq? Outra coisa… na classe Enum do javadoc encontro o método valueOf recebendo como parâmetros um enumType e uma String e no código abaixo o método recebe apenas a String… onde encontro esse método com essa assinatura? é herdado?
Código:
enum Fish {GOLDFISH, ANGELFISH, GUPPY;}
public class EnumTest {
public static void main (String[] args ) {
Fish f = Fish.valueOf(“GUPPY”);
if (f == Fish.GUPPY)
System.out.println(“Equals”);
if (f.equals(Fish.GUPPY))
System.out.println(“Equals”);
}
}
Javadoc Enum:
valueOf
public static <T extends Enum> T valueOf(Class enumType,
String name)
Returns the enum constant of the specified enum type with the specified name. The name must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
Parameters:
enumType - the Class object of the enum type from which to return a constant
name - the name of the constant to return
Returns:
the enum constant of the specified enum type with the specified name
