Java에서 목록 ADT를 구현하려고합니다. Goodrich의 데이터 구조에 대한 책을 뒤 따랐습니다. 내가 위치를 구현하고있다 DNode.java라는 클래스를 가지고 지금 first(), last()
같은 목록의 메소드 선언을 가지고목록 구현의 ClassCastException?
public interface Position {
Object element()throws InvalidPositionException;
}
및 목록 등
:
나는 2 개 인터페이스라는 위치를 생성 특정 노드에 대해 이전 요소와 다음 요소를 할당하는 메소드.마지막으로 List 인터페이스를 구현하는 NodeList.java가 있습니다.
여기에는 Position과 Object를 입력으로 사용하여 특정 위치 앞에 노드를 삽입하기 위해 목록을 변경하는 insertBefore()
메서드가 있습니다.
이제이 메서드는 주 클래스 인 ListMain 클래스에서 호출됩니다.
Object p = (Object) br.readLine();
nl.insertAfter((Position)p, element);
nl.display();
기본적으로, 문자열의 형태로 사용자로부터 입력을 촬영 한 개체 유형으로 변환 한 후 위치를 입력으로 변환됩니다. 내가 이렇게하면 , 나는 말한다 클래스 캐스트 예외가
java.lang.String의이 ListPackage.Position 캐스트 할 수없는는
사람은 얼마나 적절한 유형 캐스팅을 말해 주시겠습니까 . 아니면 내 접근 방식이 잘못되어 다른 것을해야합니까?
저는 데이터 구조를 처음 사용합니다. 그래서, 어떤 도움을 주시면 감사하겠습니다. 미리 감사드립니다.
에
DNode
객체로String
변환하는 방법의 논리를 구현해야합니다 : 대신 당신은String
에서Position
을 만들 필요가? 만약 그것이 BufferedReader라면, 분명히 String을 읽고, 그것은 Position에 캐스팅 될 수 없습니다. –