私はJavaでリストADTを実装しようとしています。私はGoodrichのデータ構造に関する本を続けました。私はポジションと呼ばれる2つのインターフェイスを作成リスト実装のClassCastException?
:今
public interface Position {
Object element()throws InvalidPositionException;
}
とfirst(), last()
のようなリストのメソッド宣言を持っているリストなどを、私はポジションを実装していDNode.javaと呼ばれるクラスを持っています特定のノードの前と次の要素を割り当てるメソッド。
最後に、私はListインターフェイスを実装するNodeList.javaを持っています。
これには、位置とオブジェクトを入力として受け取り、特定の位置の前にノードを挿入するためにリストを変更するメソッドがあります(insertBefore()
)。
ここで、このメソッドはメインクラスであるListMainクラスから呼び出されます。
Object p = (Object) br.readLine();
nl.insertAfter((Position)p, element);
nl.display();
基本的に、私は、文字列の形式でユーザからの入力をとって、オブジェクトを入力するためにそれを変換し、位置を入力するためにそれを変換します。 私がそうするとき、私は
java.lang.StringではListPackage.Position
にキャストすることはできませんが、誰かが適切な型キャストを行う方法を教えてくださいすることができ言いクラスキャスト例外を取得。または私のアプローチが間違っていると私は別の何かをしている必要がありますか?
私はデータ構造が初めてです。だから、どんな助けもありがとう。 ありがとうございます。
DNode
クラスのコンストラクタでDNode
オブジェクトにString
を変換する方法のロジックを実装する必要があります 'br'はどのようなものです:代わりに、String
からPosition
を作成する必要がありますか?これがBufferedReaderなら、明らかにStringを読み込み、Positionにキャストすることはできません。 –