De acordo com o código abaixo:
21. public class Ball {
22. public enum Color { RED, GREEN, BLUE };
23. public void foo() {
24. // insert code here
25. { System.out.println(c); }
26. }
27. }
Que código inserido na linha 24 causa ao método “foo” imprimir RED, GREEN e BLUE?
A. for(Color c : Color.values())
B. for(Color c = RED; c <= BLUE; c++)
C. for(Color c; c.hasNext() ; c.next())
D. for(Color c = Color[0]; c <= Color[2]; c++)
E. for(Color c = Color.RED; c <= Color.BLUE; c++)
Operadores de incremento e comparação não podem ser aplicados a tipos de enumeração, o que inviabiliza a execução dos códigos presentes nas alternativas B, D e E. A opção C está incorreta já que em um enum não há implementação dos métodos hasNext() e next(). E ainda, os elementos de um enum não podem ser acessados por índices, mas sim pela notação “.” (dot notation). Concluindo, apenas a opção A possui uma codificação correta usando uma alternativa criada desde a versão 1.5 da linguagem para acesso a todos os elementos de uma coleção ou enumeração.
Alternativa correta: A.
Nenhum comentário:
Postar um comentário