Olá Pessoal, tudo bom?
Aqui é a resposta do puzzle 001. Veja na continuação deste post!
Puzzle 001 – Resposta
O código apresentado na classe ForEachTest irá falhar já na compilação, pois a classe CollectionCustomizada não implementa a interface java.lang.Iterable, dessa forma não será possível nem realizar a compilação desse programa, como mostra a stack trace abaixo:
java.lang.Error: Unresolved compilation problem: Can only iterate over an array or an instance of java.lang.Iterable
at br.com.mauda.puzzle.foreach.numero001.ForEachTest.teste(ForEachTest.java:19)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
… 20 more
É de conhecimento da maioria dos desenvolvedores que as instâncias das classes Collection, podem ser utilizadas dentro de um for each, mas não é de conhecimento comum o porque isso ocorre.
Como o for each necessita que a classe implemente a interface java.lang.Iterable, somente classes que façam essa implementação o podem utilizar. Todas as classes da API Collection, implementam a interface java.util.Collection e essa interface implementa a interface java.lang.Iterable.
Assim para que o puzzle funcione, a classe CollectionCustomizada deveria implementar a interface Collection ou estender a classe AbstractCollection
finnaly{
Esse foi o primeiro puzzle sobre alguma parte do Java, pretendo no futuro ir colocando mais puzzles, a fim de trabalhar alguns aspectos da linguagem.
Duvidas ou sugestões? Deixe seu feedback! Isso ajuda a saber a sua opinião sobre os artigos e melhorá-los para o futuro! Isso é muito importante!
Até um próximo post!
Leave a Reply