2013-10-04 2 views
0

У меня есть задание, с которым у меня небольшие проблемы. Требуются следующие заголовки методов, и я не могу их изменить. Я должен обеспечить реализацию следующего метода:Общий тип как метод параметр

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

, что вызывает частный рекурсивный метод:

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

Моя проблема в том, как я получаю вход типа T от метода contains2 и сделать так, чтобы этот метод содержал тот же параметр типа T? Это то, что я пробовал.

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 

Я получаю следующее сообщение об ошибке «Требуется: переменная, найденную: значение» для параметра «входа» для этой строки кода:

if (contains(entry, startingNode) = true) 

Пожалуйста игнорируемых, что мой код не является полным для задание, прямо сейчас мне просто нужна эта строка кода, чтобы принять тип T в качестве входного.

+1

'T' - это параметр типа для объявления класса, которое вы не указали. –

+0

@JimGarrison вот объявление класса. общественного класса LList2 реализует ListInterface Имейте в виду, я не могу изменить метод заголовки, представленные в этом задании, я могу только добавить код, который идет внутри методов. Как получить входные параметры из метода contains2, чтобы войти в параметры для метода содержит? –

+0

Каково определение класса Node? Пожалуйста, покажите это – Bohemian

ответ

0

Ваша проблема здесь:

T entry = T anEntry; 

Это недопустимый синтаксис. Отложив на время бесполезность объявления дополнительной ссылки на входной параметр и сравнивая логическое значение с true, вы должны просто опустить второй T из этой строки.

Вот ваша другая проблема:

if(contains(entry, startingNode) = true) 

Здесь вы пытаетесь присвоить значение true выражению. Вам нужен оператор ==. Или просто не сравнивайте логическое значение с true, так как это не изменяет результат.

+0

Я изначально пробовал это без второго T. Я все еще получаю ту же ошибку. Мне нужна запись типа переменной, но компилятор видит ее как значение типа. –

+0

Ответ отредактирован, чтобы исправить вторую проблему. –

Смежные вопросы