Почему эта текстовая панель дает мне адрес памяти?

StackOverflow https://stackoverflow.com/questions/1801289

  •  05-07-2019
  •  | 
  •  

Вопрос

Это кнопка отмены функции на калькуляторе, который я пишу. отменить это кнопка Статус это класс, который содержит мой статус. listOfStates - это ArrayList of Status. displayBox является объектом JTextFeild. Что я не понимаю, так это то, что когда я отображаю в текстовом поле предыдущее состояние, я получаю что-то вроде: Status @ 11dc088. Я знаю, что скучаю по тому, чтобы что-то здесь кастовать. Спасибо за любую помощь.

if(e.getSource() == undo)
             {
                 Status previousState  = (Status) listOfStates.get(listOfStates.size()- 1);

                 displayBox.setText(" ");
                 displayBox.setText(displayBox.getText()  + previousState);
                 System.out.println(previousState);
                }
Это было полезно?

Решение

Status - это пользовательский класс, и вы не реализовали метод toString (), поэтому вы получаете метод Object toString () по умолчанию.

Переопределите метод toString () в классе Status, чтобы получить значимую строку.

Или используйте метод из вашего класса, например previousState.getStatus (), чтобы использовать соответствующее свойство из вашего класса.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top