Oi povão XD
oia esse código aki:
package RevisandoCap7;
import java.util.ArrayList;
import java.util.Collection;
public class LongWordFinder {
public static void main(String [] args){
String[] array = {"123","12345678","1","12","[telefone removido]"};
java.util.List<String> list = java.util.Arrays.asList(array);
java.util.Collection<String> resultList = getLongWords(list); // vai dar erro aqui
}
public static <E extends CharSequence> Collection<? extends CharSequence> getLongWords(Collection<E> coll)
{
Collection<E> longWords = new ArrayList<E>();
for(E word : coll)
if(word.length() > 6 ) longWords.add(word);
return longWords;
}
}
o código acima NÃO compila
na linha q provoca o erro (que é o cabeçalho do método getLongWords).
se eutrocar por:
aí vai compilar …
mas pq??
na linha com erro eu falei que o retorno ia ser <? extends CharSequence> e deu erro
na linha sem erro eu falei que o retorno ia ser (sendo que E foi declarado no método com sendo extends CharSequence ) e NÃO DÀ ERRO
Por que?? eu pensei que as duas declarações fossem equivalentes
VALEW gentee

