2013-10-04 7 views
0

약간의 문제가 있습니다. 다음 메소드 헤더가 필요하며 변경할 수 없습니다. 개인 재귀 메소드를 호출일반 매개 변수를 메서드 매개 변수로 사용

contains2(T anEntry) 
{ 
//my code here 
} 

: 나는 다음과 같은 방법의 구현을 제공해야

private boolean contains(T anEntry, Node startNode) 
{ 
//my code here 
} 

내 문제는, 내가 방법 contains2에서 T 타입의 입력을받을하는 방법, 및 그것을 포함하는 메소드가 동일한 타입의 T 매개 변수를 포함하도록 만드시겠습니까? 이것이 제가 시도한 것입니다. 내 코드가 완료되지 않은 것을

if (contains(entry, startingNode) = true) 

무시하십시오 :이 코드 줄의 "항목"매개 변수에

private boolean contains2(T anEntry) 
{ 
boolean found = false; 
T entry = T anEntry; 

Node startingNode = firstNode; 

if (contains(entry, startingNode) = true) 
found = true; 

return found; 

}//end method contains2 

private boolean contains(T anEntry, Node startNode) 
{ 
boolean found = false; 
return found; 
}//end method contains 

나는 다음 "값 : 변수를 찾을 필요"오류 할당, 바로 지금 입력 형식으로 T를 받아들이는 코드 줄이 필요합니다.

+1

'T'는 클래스 선언에 대한 유형 매개 변수로 표시되지 않았습니다. –

+0

@JimGarrison 여기에 클래스 선언이 있습니다. public class LList2 ListInterface 구현 이 할당에서 제공하는 메서드 헤더는 변경할 수 없으므로 메서드 내부에있는 코드 만 추가 할 수 있습니다. 메서드 contains2에서 입력 매개 변수를 가져와 메서드에 대한 매개 변수로 들어가려면 어떻게합니까? –

+0

Node 클래스의 정의는 무엇입니까? 그것을 보여주십시오. – Bohemian

답변

0

귀하의 문제는 바로 여기에 있습니다 :

T entry = T anEntry; 

이 유효하지 않은 구문입니다. 잠시 동안 입력 매개 변수에 대한 추가 참조를 선언하고 부울 값을 true과 비교하는 쓸데없는 점을 제외하고는 해당 행에서 두 번째 T을 생략하면됩니다. 당신이 표현 값 true을 할당하려고

if(contains(entry, startingNode) = true) 

여기 :

여기에 다른 문제입니다. == 연산자가 필요합니다. 또는 결과를 변경하지 않기 때문에 부울을 true과 비교하지 마십시오.

+0

원래 두 번째 T없이 시도했지만 여전히 같은 오류가 발생합니다. 변수 타입이 될 엔트리가 필요하지만, 컴파일러는 그것을 타입 값으로보고있다. –

+0

답변 됨 두 번째 문제점을 수정했습니다. –

관련 문제