ae pessoal, fiquei na duvida pq usar o coringa, se qdo usa-lo nao posso adicionar nada a minha lista… entao pra q usar?
import java.util.*;
class Cor{}
class Azul extends Cor{}
class NoCoring{
public void cham(List<? extends Cor> cor){
//cor.add(new Azul());
}
public static void main(String agrs[]){
NoCoring nc = new NoCoring();
List<Cor> li = new ArrayList<Cor>();
nc.cham(li);
}
}
nesse codigo ai qual a essencia de usar a notacao <?> ja que nao posso adiciona nada ao meu conjunto? na explicacao da kahty nao vi o objetivo de usar o <?> mudei, veja o mesmo codigo so que mudei apenas a minha lista:
import java.util.*;
class Cor{}
class Azul extends Cor{}
class NoCoring{
public void cham(List<? extends Cor> cor){
//cor.add(new Azul());
}
public static void main(String agrs[]){
NoCoring nc = new NoCoring();
List<Azul> li = new ArrayList<Azul>();
nc.cham(li);
}
}
nessa aqui entendi que posso passar para meu metodo qualquer coisa extends a Cor ai passei Azul, mais mesmo assim nao posso adicionar ao conjunto… nao conseguir entender essa parte do estudos sobre genericos…