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

Erro de compilação ao instanciar a classe

Boa tarde colegas,

O código não está compilando devido ao seguinte erro: No enclosing instance of type Teste is accessible. Must qualify the allocation with an enclosing instance of type Teste (e.g. x.new A() where x is an instance of Teste).

Isso acontece no momento de instanciar a classe: new NumeroDaContaComparator();

Segue o código, e já agradeço pela ajuda!

at br.com.bytebank.banco.teste.util.Teste.main(Teste.java:34)
package br.com.bytebank.banco.teste.util;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

import br.com.bytebank.banco.modelo.Conta;
import br.com.bytebank.banco.modelo.ContaCorrente;
import br.com.bytebank.banco.modelo.ContaPoupanca;

public class Teste {

    public static void main(String[] args) {

        Conta cc1 = new ContaCorrente(22, 33);
        cc1.deposita(333.0);
        Conta cc2 = new ContaPoupanca(22, 44);
        cc2.deposita(444.0);
        Conta cc3 = new ContaCorrente(22, 11);
        cc3.deposita(111.0);
        Conta cc4 = new ContaPoupanca(22, 22);
        cc4.deposita(222.0);

        List<Conta> lista = new ArrayList<>();
        lista.add(cc1);
        lista.add(cc2);
        lista.add(cc3);
        lista.add(cc4);

        for (Conta conta : lista) {
            System.out.println(conta);
        }

        NumeroDaContaComparator comparator = new NumeroDaContaComparator();
        lista.sort(comparator);

        System.out.println("------------");

        for (Conta conta : lista) {
            System.out.println(conta);
    }
}

class NumeroDaContaComparator implements Comparator<Conta> {

    @Override
    public int compare(Conta c1, Conta c2) {

        if(c1.getNumero() < c2.getNumero()) {
            return -1;
        }
        if(c1.getNumero() > c2.getNumero()) {
            return 1;
        }
        return 0;
        }
    }
}
3 respostas

Tenta colocar a class NumeroDaContaComparator como static e vê se roda.

solução!

Olá Henrique, boa tarde. Está faltando uma chave "}" no seu código, mais precisamente no segundo for(Conta conta : lista). Tente indentar o código todo desde a classe Teste.

Deu certo, era a chave "}" mesmo.

Obrigado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software