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