为什么这个Text面板给我一个内存地址?

时间:2009-11-26 02:47:43

标签: java object arraylist

这是我正在编写的计算器上的撤消功能按钮。 undo是按钮Status是一个保存我状态的类。 listOfStates是Status的ArrayList。 displayBox是JTextFeild的一个对象。我没有理解的是,当我在文本框中显示previousState时,我会得到类似于: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);
                }

1 个答案:

答案 0 :(得分:3)

Status是一个自定义类,你没有实现toString()方法,所以你得到了Object默认的toString()方法。

重写Status类中的toString()方法以返回有意义的String。

或者,使用类中的方法(如previousState.getStatus())来使用类中的相应属性。