1
resposta

Exception: UnsupportedOperationException

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);

    }
}
1 resposta

Fala ai Pedro, tudo bem ?

Você não pode alterar uma lista que é imodificável, por isso o erro.