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

Problemas com mudança de pacote.

Eu tenho uma classe gerenciador de impostos que possui um método adiciona e esse só funciona com classes que têm a interface Tributável. Eis o o método:

public void adiciona (Tributavel t){
        System.out.println("Adicionando tributavel " + t);

O problema é que ao invocar esse método no main, ao invés de imprimir "Adicionando tributavel 'nome da classe' ", o que aparece é o nome completo da classe, como abaixo:

GerenciadorDeImpostoDeRenda g = new GerenciadorDeImpostoDeRenda();

        g.adiciona(seguro);
        g.adiciona(ContaC);

O que deveria imprimir na tela:

Adicionando tributavel seguro
Adicionando tributavel ContaC

O que aparece:

Adicionando tributavel banco.sistema.seguros.SeguroDeVida@15db9742
Adicionando tributavel banco.sistema.contas.ContaCorrente@6d06d69c

Esse problema só começou quando alterei as classes de pacote.

A classe main importa todas as outras classes; A classe GerenciadorDeImpostoDeRenda está no mesmo pacote que a interface Tributavel.

1 resposta
solução!

Boa tarde Igor,

Quando vc tem uma classe, cria um objeto dela e imprime, por padrão ele imprime o método toString() da classe. Se você não sobrescreveu, ele pega do pai (classe Object) e imprime essa combinação de número e hashcode...

Para resolver seu problema, voce pode fazer:

System.out.println("Adicionando tributavel " + t.getClass().getSimpleName());

Espero ter ajudado, abraços