anderson.bonavides:
Galéra alguêm poderia me dar uma explicação detalhada dessa questão? Desculpem mas não entendi praticamente nada.
A resposta corréta é a letra F.
:cry:
Quais declarações de poderiam ser inseridas no comentário INSIRA A DECLARAÇÃO AQUI de forma que o progrma compile e rode?
import java.util.*;
public class LongWordFinder {
public static void main(String[] args) {
String[] array = {"123", "12345678", "1", "12", "[telefone removido]"};
List <String> list = Arrays.asList(array);
Collection<String> resultList = getLongWords(list);
}
//INSIRA A DECLARAÇÃO DE MÉTODO AQUI.
{
Collection<E> longWords = new ArrayList<E>();
for(E word: coll)
if(word.length() > 6) longWords.add(word);
return longWords;
}
}
A) public static Collection extends CharSequence>
getLongWords(Collection coll)
B) public static List
getLongWords(Collection coll)
C) public static Collection
getLongWords(Collection coll)
D) public static List
getLongWords(Collection coll)
E) public static List extends CharSequence>
getLongWords(Collection extends CharSequence> coll)
F) static public Collection
getLongWords(Collection coll)
G) static public Collection
getLongWords(Collection coll)
vamos lá
a) está tudo ok! Com exceção do tipo de retorno que é muito "extenso..." note que voce espera
Collection<String> e não Collection<? extends CharSequence >
se fosse
Collection<? extends CharSequence> resultList = getLongWords(list)
estario tudo OK !!!!
b) está não vai compilar porque dentro do metodo getLongWords() faz
Collection<E> longWord = new ArrayList<E>();
e retorna isso sendo que o teste é - um falha (Collection é uma List ?(falha...))
c) é uma sintaxe incorreta o metodo aqui não está sendo uma método genérico correto!! ele é assim
public static Collection<E extends CharSequence> getLongWords(Collection<E> c){...}
note que para um metodo ser generico precisa declarar que o mesmo é generico, e esse metodo não faz isso !
d) esse de cara já da para matar que está errado pois isso é a parte mais simples de generico.. vamos lá um exemplo..
List<Integer> inter;
List<String> stringg;
inter = stringg; // isso é correto ?// esse é um dos motivos desse metodo não poder ser o correto.
e) a sintaxe do metodo está certinha mas o que está errado é o tipo de retorno do metodo.
f) é o certo.
g) está errado a sintaxe não se pode usar
public static <E super CharSequence> .......
somento a palavra extends....
valow espero ter ajudado !