2012-04-09 6 views
0
public class Coordinate{ 

private Integer row; 
private Integer column; 

public Coordinate(Integer row, Integer column){ 
    this.row = row; 
    this.column = column; 
} 

public void setRow(Integer row){ 
    this.row = row; 
} 

public void setColumn(Integer column){ 
    this.column = column; 
} 

public Integer getRow(){ 
    return row; 
} 

public Integer getColumn(){ 
    return column; 
} 

public String toString(){ 
    return "<" + row.toString() + "," + column.toString() + ">"; 
} 
} 

私はこの座標クラスを持っているので、それらのいくつかはスタックにプッシュされています。今私がしたいのはpeek()の1つで、getRowメソッドとgetColumnメソッドを使うことができます。私はこれをどのようにして行うのですか?私が抱えている問題は、私はCoordinateの新しいインスタンスを作成して、次にそれにstack.peek()を割り当てて、そのメソッドを使用していますが、動作していないということです。混乱したstack.peek()method-Java

+2

「Coordinate」の定義は実際には関係ありません。そのインスタンスをスタックにプッシュし、 'peek'呼び出しの結果から' stack.peek()。getColumn() 'メソッドをコールしてcoordsメソッドを呼び出します。 –

+0

また、ビルの答えが示すようにスタックメソッドを呼び出そうとしていますか?問題は本当に明確ではありません。 –

+0

私はSystem.out.println(stack.peek()。getRow())を実行しようとしました。 エラーが発生しました:シンボルを見つけることができません \t \t System.out.println(mazeStack.peek()。getRow()); \t \t^ シンボル:メソッドgetRow() 場所:クラスオブジェクト –

答えて

1
Coordinate c = new Coordinate(1,2); 
Stack<Coordinate> s = new Stack<Coordinate>(); 
s.push(c); 
System.out.println(s.peek()); 

Coordinate c2 = (Coordinate)s.pop(); 
System.out.println(c2); 
System.out.println(c2.getRow()); 

ここでヒントはありますが、java.util.Stackは使用しないでください。それは非常に良いではなかった元のコレクションのライブラリから。

編集は、キャストを表すように変更されています。これは、この場合に必要な音です。注cとc2は同じオブジェクトを指します。

+0

OPは彼自身の 'Stack'クラスを作った – Jeffrey

+0

彼はそうだったようだが、彼は後でそれを言った。 – Bill

+0

は新しい情報を反映するように編集されました。 – Bill

1

stack.peek()の結果をCoordinateクラスにキャストする必要があるようです。 System.out.println(((Coordinate)mazeStack.peek()).getRow());のようなものがあなたが探しているものかもしれません。

+0

つまり、stack.peek()の実装が実際にObjectを返す場合です。 – Tom

+0

ありがとうございました!私はキャストについて忘れてしまった。私の問題を解決しました。 –

+0

@JohnSmith喜んで助けました。容認された答えに印をつけてください。 – Tom

関連する問題