2013-10-04 149 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 implements列表接口 请记住,我无法更改此工作分配中提供的方法头,我只能添加进入方法的代码。如何从方法contains2中获取输入参数,以便进入包含该方法的参数? –

+0

节点类的定义是什么?请展示 – Bohemian

回答

0

你的问题就在这里:

T entry = T anEntry; 

这是无效的语法。暂时放弃对输入参数声明额外引用并将布尔值与true进行比较的无用处,应该简单地省略该行中的第二个T

这是你的另一个问题:

if(contains(entry, startingNode) = true) 

在这里,你正试图将值true分配给表达式。您需要==运营商。或者,不要将布尔值与true进行比较,因为这不会改变结果。

+0

我最初尝试没有第二个T.我仍然得到同样的错误。我需要输入变量类型,但编译器将其视为类型值。 –

+0

回答编辑以解决第二个问题。 –