このテキストパネルにメモリアドレスが表示されるのはなぜですか?

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

  •  05-07-2019
  •  | 
  •  

質問

これは、私が書いている電卓の元に戻す機能ボタンです。元に戻すは、ステータスボタンは私のステータスを保持するクラスです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()などのクラスのメソッドを使用して、クラスの適切なプロパティを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top