我有一个类ExtA,它包含一个过滤函数来过滤ArrayList:
public ExtA<T> filt(...)
{
//code
}
当我编译它时给我错误:找不到符号 - 类T.为什么会这样?
答案 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
}