このテキストパネルにメモリアドレスが表示されるのはなぜですか?
質問
これは、私が書いている電卓の元に戻す機能ボタンです。元に戻すは、ステータスボタンは私のステータスを保持するクラスですlistOfStatesは、ステータスの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);
}
解決
ステータスはカスタムクラスであり、toString()メソッドを実装していないため、ObjectのデフォルトのtoString()メソッドを取得します。
StatusクラスのtoString()メソッドをオーバーライドして、意味のある文字列を返します。
または、previousState.getStatus()などのクラスのメソッドを使用して、クラスの適切なプロパティを使用します。
所属していません StackOverflow