¿Por qué este panel de texto me da una dirección de memoria?
Pregunta
Este es un botón de función de deshacer en una calculadora que estoy escribiendo. Deshacer es el botón Estado es una clase que mantiene mi estado. listOfStates es una lista de estado de Array. displayBox es un objeto de JTextFeild. Lo que no entiendo es que cuando muestro Estado anterior en el cuadro de texto obtengo algo como: Estado @ 11dc088. Sé que me estoy perdiendo echando algo aquí. Gracias por cualquier ayuda.
if(e.getSource() == undo)
{
Status previousState = (Status) listOfStates.get(listOfStates.size()- 1);
displayBox.setText(" ");
displayBox.setText(displayBox.getText() + previousState);
System.out.println(previousState);
}
Solución
El estado es una clase personalizada y no implementaste un método toString (), por lo que obtienes el método Object toString () predeterminado.
Anula el método toString () en la clase de estado para devolver una cadena significativa.
O, usa un método de tu clase como previousState.getStatus () para usar la propiedad apropiada de tu clase.