Perché questo pannello di testo mi dà un indirizzo di memoria?
Domanda
Questo è un pulsante di funzione Annulla su una calcolatrice che sto scrivendo. annulla è il pulsante Stato è una classe che detiene il mio stato. listOfStates è un ArrayList of Status. displayBox è un oggetto di JTextFeild. Quello che non capisco è che quando visualizzo previousState nella casella di testo ottengo qualcosa del tipo: Status @ 11dc088. So che mi manca il casting di qualcosa qui. Grazie per qualsiasi aiuto.
if(e.getSource() == undo)
{
Status previousState = (Status) listOfStates.get(listOfStates.size()- 1);
displayBox.setText(" ");
displayBox.setText(displayBox.getText() + previousState);
System.out.println(previousState);
}
Soluzione
Lo stato è una classe personalizzata e non è stato implementato un metodo toString () in modo da ottenere il metodo toString () predefinito dell'oggetto.
Sostituisci il metodo toString () nella classe Status per restituire una stringa significativa.
Oppure, usa un metodo della tua classe come previousState.getStatus () per usare la proprietà appropriata della tua classe.