Problema com cast

Boa Noite,
estou fazendo alguns exercícios de estrutura de dados utilizando listas

public class Atividade03 {

    public static void main(String[] args) {
        Processo a = new Processo("A", 72);
        Processo b = new Processo("B", 90);
        Processo c = new Processo("C", 68);
        Processo d = new Processo("D", 55);
        Processo e = new Processo("E", 47);
        ListaSimples lista = new ListaSimples();
        lista.add(a);
        lista.add(b);
        lista.add(c);
        lista.add(d);
        lista.add(e);
    

        Object auxiliar = lista.get();
        
        
       while (auxiliar != null) {
            Processo processo = (Processo) auxiliar;
            if (processo.getTempo() < 10) {
                processo.setTempo(processo.getTempo() - (processo.getTempo() % 10));
            } else {
                processo.setTempo(processo.getTempo() - 10);
                lista.add(processo);
            }
            System.out.println(processo);
            auxiliar = lista.get();
        }
    }
}

e esta dando erro de cast nesta linha

Processo processo = (Processo) auxiliar;

e na minha ListaSimples o retorno de get é um Object.

eu ja fiz esse exercicio e funcionava assim, mas agora refazendo ele n roda mais.

Posta o código da classe ListaSimples

1 curtida
public class Fila {

    private Integer quantidade;
    private No primeiro;

    public Fila() {
        quantidade = 0;
    }

    public void add(Object o) {
        No e = new No(o);
        quantidade++;
        if (primeiro == null) {
            primeiro = e;
        } else {
            No auxiliar = primeiro;
            while (auxiliar.getProximo() != null) {
                auxiliar = auxiliar.getProximo();
            }
            auxiliar.setProximo(e);
        }
    }

    public Object get() {

        No auxiliar = primeiro;
        if (auxiliar != null) {
            primeiro = primeiro.getProximo();
            quantidade--;
        }
        return auxiliar;
    }

    public String imprimir() {
        String descricao = "<< Lista >>\n";
        System.out.println("<< Lista >>");
        No auxiliar = primeiro;
        while (auxiliar != null) {
            System.out.println(auxiliar.getElemento());
            descricao += auxiliar.getElemento() + "\n";
            auxiliar = auxiliar.getProximo();
        }
        descricao += "<< TOTAL DE ELEMENTOS = " + quantidade + " >>\n\n";
        System.out.println("<< TOTAL DE ELEMENTOS = " + quantidade + " >>\n\n");
        return descricao;
    }
    
    @Override
    public String toString() {
        String mensagem = "";
        No auxiliar = primeiro;
        while (auxiliar != null) {
            mensagem += auxiliar.getElemento() + "\n";
            auxiliar = auxiliar.getProximo();
        }
        return mensagem;
    }
}

Veja seu trecho de código abaixo:

Object auxiliar = lista.get();
while (auxiliar != null) {
    Processo processo = (Processo) auxiliar;

Agora veja o que você retorna no método get() da classe Fila:

public Object get() {
    No auxiliar = primeiro;
    if (auxiliar != null) {
        primeiro = primeiro.getProximo();
        quantidade--;
    }
    return auxiliar;
}

Vecê retorna um objeto do tipo No e um No não estende Processo, por isso você não pode fazer cast.

Você não deve retornar o objeto No, você tem que retornar o objeto que ele encapsula.