Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

DESAFIO - APLICAÇÃO DE COMPRAS - DIFICULDADE AO IMPLEMENTAR A COMPARABLE

Fala time! Beleza?

Estou enfrentando dificuldades para implementar a interface COMPARABLE, mais especificamente ao configurar a função compareTo. Por mais que a classe Produto implemente a interface COMPARABLE e que a lógica de classificação seja inserida, o @Override apresenta erro e informa que "Method does not override method from its superclass". Não consegui contornar a falha, gostaria de ajuda. A falha ocorre na classe Produto. Para facilitar o suporte, carreguei o código fonte no gitHub, fico no aguardo de apoio nisso. Exceto esse ponto, o desafio foi concluído conforme as especificações da Jacqueline.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Visão Geral - Relacionamento das Entidades:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

GitHub: https://github.com/allefhmedeiros/carrinhocompras

1 resposta
solução!

Fala time!

Consegui identificar qual foi o erro que cometi ao implementar a interface após assistir a solução implementada pela Jacqueline. No momento que inoplementei a interface, não me atentei em especificar o tipo do objetivo comparado, corrigo esse ponto, a aplicação passou a realizar a classificação crescente que eu esperava. Ainda assim, obrigado pelo apoio!

package br.com.alura.carrinhocompras.modelos;

import java.util.Comparator;

public class Produto implements Comparable<Produto>{
    private String nomeProduto;
    private double precoProduto;
    private double valorTotal;
    int quantidadeProduto;

    public Produto(String nomeProduto, double precoProduto, int quantidadeProduto) {
        this.nomeProduto = nomeProduto;
        this.precoProduto = precoProduto;
        this.quantidadeProduto = quantidadeProduto;
        this.valorTotal = (this.precoProduto * this.quantidadeProduto);
    }


    public String getNomeProduto() {
        return nomeProduto;
    }

    public double getPrecoProduto() {
        return precoProduto;
    }

    public int getQuantidadeProduto() {
        return quantidadeProduto;
    }

    public String resumeItem() {
        return (String.format("""
                    Nome: %s, Quantidade: %d, Valor Unitário R$ %.2f, Valor Total R$ %.2f. 
                """, this.nomeProduto, this.quantidadeProduto, this.precoProduto, this.valorTotal));
    }

    @Override
    public int compareTo(Produto produto) {
        if (this.valorTotal < produto.valorTotal) {
            return -1;
        }
        if (this.valorTotal > produto.valorTotal) {
            return 1;
        }
        return 0;
    }

//    @Override
//    public int compareTo(Produto produto) {
//        if (this.valorTotal < produto.valorTotal) {
//            return -1;
//        }
//        if (this.valorTotal > produto.valorTotal) {
//            return 1;
//        }
//        return 0;
//    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade