Uso de curinga genérico em vez da interface
Se você quiser armazenar uma matriz de objetos do tipoMyInterface
, o seguinte é aceitável e, em caso afirmativo, quando você usaria o segundo formulário sobre o primeir
i) Usando apenas uma interface: -
List<MyInterface> mylist = new ArrayList<MyInterface>();
ii) Usando um curinga genérico: -
List<? extends MyInterface> mylist = new ArrayList<? extends MyInterface>();
Editar
Como as respostas até agora apontaram, o número ii não será compilado. Qual é a diferença entre ie um caso iii em que: -
iii) Usando um curinga genérico apenas na referência: -
List<? extends MyInterface> mylist = new ArrayList<MyInterface>();