Java泛型和泛型类型

时间:2014-01-03 16:54:47

标签: java generics types

我有一个类ExtA,它包含一个过滤函数来过滤ArrayList:

public ExtA<T> filt(...)
{

 //code


}

当我编译它时给我错误:找不到符号 - 类T.为什么会这样?

2 个答案:

答案 0 :(得分:5)

你必须告诉它,在这种情况下T是泛型类型:

public <T> ExtA<T> filt(Func<T, Boolean> a)

您使用符号T声明了您的接口,但该符号仅在接口声明本身中有效。您在方法中使用的T是不同的T。您必须再次声明它,因为该方法未在接口声明中实现。

答案 1 :(得分:3)

您必须将参数放在方法上:

public <T> ExtA<T> filt(Func<T, Boolean> a) {
// method code
}