Minha dúvida é: Ao declarar um tipo mais genérico ( private Collection aulas = new ArrayList<>();) ocorre um erro no Collections.unmodifiableList "Java: method unmodifiableList in class java.util.Collections cannot be applied to given types; required: java.util.List<? extends T> found: java.util.Collection<br.com.alura.Aula> reason: cannot infer type-variable(s) T (argument mismatch; java.util.Collection<br.com.alura.Aula> cannot be converted to java.util.List<? extends T>)"
Como peparar isso sem ter que abrir mão de declarar o tipo mais genérico? Cast?
Troquei por: public Set getAlunos() { return (Set) Collections.unmodifiableCollection(alunos); } fazendo o Cast, mas ao compilar recebi ClassCastException , Bah!