Porque é que este texto paul me dando um endereço de memória?
Pergunta
Este é um botão de recurso de desfazer em uma calculadora que estou escrevendo. undo é o botão Status é uma classe que detém o meu status. listOfStates é um ArrayList de Estado. displaybox é um objecto da JTextFeild. O que eu não sob stand é que quando eu exibir PreviousState na caixa de texto eu recebo algo como: status @ 11dc088. Eu sei que eu estou faltando fundição algo aqui. Obrigado por qualquer ajuda.
if(e.getSource() == undo)
{
Status previousState = (Status) listOfStates.get(listOfStates.size()- 1);
displayBox.setText(" ");
displayBox.setText(displayBox.getText() + previousState);
System.out.println(previousState);
}
Solução
Status é uma classe personalizada e você não implementar um método toString () de modo a obter o toString padrão Object () método.
Substituir o método toString () na classe Estado para retornar uma String meaningfull.
Ou, use um método de sua classe como previousState.getStatus () para usar a propriedade adequada de sua classe.