2017-10-30 8 views
0

지금 내가 가져온 그래서 중첩 노드 클래스를 포함 내 자바 프로그램의 단일 연결 클래스 :내 SLL 클래스 내에 중첩 된 Node 클래스를 어떻게 호출 할 수 있습니까?

public class SLList<T> extends AbstractQueue<T> { 
class Node { 
    T x; 
    Node next; 
} 
// 
//Some more code 
// 
} 

내가 특히 지금

Queue<Integer> mySLL=new SLList<Integer>(); 

일반적인

나의 SLList 클래스의 인스턴스를, 두 개의 노드 (내 경우에는 정수)를 가져 와서 해당 노드의 링크 만 전환하여 단일 링크 된 목록의 위치를 ​​전환 할 수 있기를 원합니다. 그러나 노드를 인스턴스화하려고하면 노드에 액세스 할 수 없습니다. 지금까지 나는 이것을 시도했다 :

SLList.Node myNode= mySLL.new Node(); 

그러나 Node()를 찾을 수 없다. 노드를 성공적으로 호출 할 수있는 방법이 있습니까? 건배

답변

0

오류는 criptic이지만 Node의 인스턴스는 SLList 인클로저 인스턴스를 인스턴스화해야합니다.

이에 사용하는 구문은 올바른 (떨어져 원시 타입을 사용하는)입니다 :

Queue<Integer> mySLL = new SLList<Integer>(); 
SLList.Node myNode = mySLL.new Node(); 

그러나, mySLL 그것이 Queue이다, 여기에 SLList 없습니다.

SLList<Integer> mySLL = new SLList<>();  
SLList<Integer>.Node myNode = mySLL.new Node(); // now works 
:

은 당신이 SLListmySLL을 선언 할 수 있습니다,이 문제를 해결하려면