Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Estou com dúvida no curso de Testes de Unidade e TDD, no exercício do capítulo Testando o que realmente é necessário.

Boa noite, Durante o vídeo Testando o que realmente é necessário, foi criada a seguinte linha de código:

Collections.sort(maiores, new Comparator<Lance>() {

no vídeo o instrutor clica com o botão direito e seleciona a opção "Add unimplemented methods" e as dependencias são resolvidas. Ao fazer isso no meu código foram adicionados vários métodos Comparator. Goataria de saber porque isso aconteceu no meu código e não aconteceu no código do vídeo. Obrigada

3 respostas

Olá Priscila

Você poderia postar o seu código após o atalho do eclipse ser executado?

Coloque o código entre ``` para que ele fique formatado corretamente.

Boa noite,

Desculpe a demora para enviar o código. Segue o trecho que falei

        maiores = new ArrayList<Lance>(leilao.getLances());
        Collections.sort(maiores, new Comparator<Lance>() {

            public Comparator<Lance> thenComparingLong(
                    ToLongFunction<? super Lance> arg0) {
                // TODO Auto-generated method stub
                return null;
            }

            public Comparator<Lance> thenComparingInt(ToIntFunction<? super Lance> arg0) {
                // TODO Auto-generated method stub
                return null;
            }

            public Comparator<Lance> thenComparingDouble(
                    ToDoubleFunction<? super Lance> arg0) {
                // TODO Auto-generated method stub
                return null;
            }

            public <U> Comparator<Lance> thenComparing(
                    Function<? super Lance, ? extends U> arg0,
                    Comparator<? super U> arg1) {
                // TODO Auto-generated method stub
                return null;
            }

            public <U extends Comparable<? super U>> Comparator<Lance> thenComparing(
                    Function<? super Lance, ? extends U> arg0) {
                // TODO Auto-generated method stub
                return null;
            }

            public Comparator<Lance> thenComparing(Comparator<? super Lance> arg0) {
                // TODO Auto-generated method stub
                return null;
            }

            public Comparator<Lance> reversed() {
                // TODO Auto-generated method stub
                return null;
            }


            public int compare(Lance o1, Lance o2){
                if(o1.getValor() < o2.getValor()){
                    return 1;
                }

                if(o1.getValor() > o2.getValor()){
                    return -1;
                }

                return 0;
            }
        });
solução!

Oi Priscila,

o problema aqui acontece porque o auto-complete do Eclipse tomou essa (estranha) decisão ao usar o java.util.Comparator do Java8, que você deve ter instalado na sua máquina.

Pode, simplesmente, tirar todos os outros métodos e deixar apenas o método que realmente precisa ser implementado, o public int compare(Lance o1, Lance o2).

Os outros métodos estão disponíveis só a partir do Java 8 e o vídeo deve ter sido feito com o Java 7. :-)

Mas, como backwards compatibility é levado a sério em Java, você pode simplesmente tirar os outros métodos e tudo vai funcionar normalmente!