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

Erro de compilação

Olá. Quando eu aperto ctrl + 1 e utilizo Infer Generic Type Arguments aparece um problema: "Compile errors found in br.com.lsc.banco.TestaMapa.java. The compilation unit has been skipped.". Aperto "Continue" e não acontece nada.

Após esse problema, adicionei a linha: Map<String, Conta> mapaDeContas = new HashMap<String, Conta>();, em vez de: Map mapaDeContas = new HashMap();

Mesmo assim não compila, com a seguinte mensagem: "Exception in thread "main" java.lang.Error: Unresolved compilation problems: Type mismatch: cannot convert from HashMap to MappingChange.Map The method put(String, Conta) is undefined for the type MappingChange.Map The method put(String, Conta) is undefined for the type MappingChange.Map The method get(String) is undefined for the type MappingChange.Map at br.com.lsc.banco.TestaMapa.main(TestaMapa.java:17)"

Segue o código do programa:

package br.com.lsc.banco;
import java.util.HashMap;
import com.sun.javafx.collections.MappingChange.Map;
import br.com.lsc.banco.conta.Conta;
import br.com.lsc.banco.conta.ContaCorrente;

public class TestaMapa {

    public static void main(String[] args) {
        Conta c1 = new ContaCorrente(0, "Joao");
        c1.deposita(10000);

        Conta c2 = new ContaCorrente(1, "Maria");
        c2.deposita(3000);

        // cria o mapa
        Map<String, Conta> mapaDeContas = new HashMap<String, Conta>();

        // adiciona duas chaves e seus valores
        mapaDeContas.put("diretor", c1);
        mapaDeContas.put("gerente", c2);

        // qual a conta do diretor?
        Conta contaDoDiretor = (Conta) mapaDeContas.get("diretor");
        System.out.println(contaDoDiretor.getSaldo());
    }
}

Código da Conta:

package br.com.lsc.banco.conta;

import br.com.lsc.banco.ValorInvalidoException;

public abstract class Conta implements Comparable<Conta> {
    private int numero;
    private String nome;
    protected double saldo;


    public Conta(int num, String nome) {
        this.numero = num;
        this.nome = nome;

    }
    public double getSaldo() {
        return saldo;
    }

    public void deposita(double valor) {
        if(valor <= 0) {
            throw new ValorInvalidoException(valor);
        }
        this.saldo += valor;
    }

    public void saca(double valor) {
        this.saldo -= valor;
    }

    public abstract void atualiza(double taxa);


    public String toString(){
        return this.nome;
        //return String.valueOf(this.numero);
    }
    public boolean equals(Object obj) {
        Conta outraConta = (Conta) obj;
        return (this.numero == outraConta.numero) && (this.nome == outraConta.nome);
    }

    public int getNumero() {
        return numero;
    }

    public void setNumero(int numero) {
        this.numero = numero;
    }

    @Override
    public int compareTo(Conta o) {
        //return this.nome.compareTo(o.toString());
        return this.getNumero() - o.getNumero();
    }


}

Código da ContaCorrente:

package br.com.lsc.banco.conta;

public class ContaCorrente extends Conta implements Tributavel {

    public ContaCorrente(int num, String nome) {
        super(num, nome);
        // TODO Auto-generated constructor stub
    }

    public void atualiza(double taxa) {
        this.saldo += this.saldo * taxa * 2;
    }

    @Override
    public double calculaTributos() {
        return this.getSaldo() * 0.01;
    }
}
1 resposta
solução!

esse import aqui =>

import com.sun.javafx.collections.MappingChange.Map;

deveria java.util.Map