通用类型作为方法参数

时间:2013-10-04 03:00:47

标签: java generics methods parameters

我有一项任务,我遇到了一些麻烦。需要以下方法标头,我无法更改它们。我必须提供以下方法的实现:

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

调用私有递归方法:

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

我的问题是,如何从方法contains2获取类型T的输入,并使其方法包含相同类型的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

对于此行代码的“entry”参数,我收到以下错误“required:variable,found:value”:

if (contains(entry, startingNode) = true)

请忽略我的代码没有完成分配,现在我只需要那行代码接受类型T作为输入。

1 个答案:

答案 0 :(得分:0)

你的问题就在这里:

T entry = T anEntry;

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

这是你的另一个问题:

if(contains(entry, startingNode) = true)

在这里,您尝试将值true分配给表达式。您需要==运算符。或者只是不要将布尔值与true进行比较,因为这不会改变结果。