Após colocar unmodifiableList no método getAulas, o código não compila e apresenta a seguinte mensagem:
Exception in thread "main" java.lang.UnsupportedOperationException at java.util.Collections$UnmodifiableCollection.add(Unknown Source) at listas.Curso.adiciona(Curso.java:30) at listas.TestaCurso.main(TestaCurso.java:13)
Não estou encontrando o erro. Gostaria de ajuda. Obrigado!
package listas;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Curso{
private String nome;
private String instrutor;
private List<Aula> aulas = new ArrayList<>();
public Curso(String nome, String instrutor) {
this.nome = nome;
this.instrutor = instrutor;
}
public String getNome() {
return nome;
}
public String getInstrutor() {
return instrutor;
}
public List<Aula> getAulas() {
return Collections.unmodifiableList(aulas);
}
public void adiciona(Aula aula) {
this.getAulas().add(aula);
}
}
package listas;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class TestaCurso {
public static void main(String[] args) {
Curso curso = new Curso("Collections", "Pedro");
// curso.getAulas().add(new Aula("Trabalhando com ArrayList", 20));
curso.adiciona(new Aula("LinkedList", 5));
curso.adiciona(new Aula("ArrayList", 10));
System.out.println(curso.getAulas());
List<Aula> aulasImutaveis = curso.getAulas();
List<Aula> aulas = new ArrayList<>(aulasImutaveis);
Collections.sort(aulas);
System.out.println(aulas);
}
}