我想要做的是将通用对象(ItemDelegate)内的泛型方法(过滤器)发送到另一个泛型方法(getItem)。问题是第二种方法(getItem)无法推断出正确的类型。基于泛型参数的java泛型类型推断
// Generic object
public class ItemDelegate<T> {
public <T> T filter() {
return null;
}
}
// Generic method (receiver):
public static <T> T getItem(ItemDelegate<T> delegate) {
T item = delegate.filter();
//... do something
return item;
}
// Usage in code:
getItem(new ItemDelegate<String>() {
public String filter() {
return "Hi!";
}
}
此代码生成的getItem编译错误:
的T型参数不能被确定;对于类型变量T,没有唯一的最大实例,其上限为T,java.lang.Object
这甚至可以在java中完成,还是有更好的方法。
谢谢。
是否过滤()或过滤器(ResultSet的X)? – Jerome 2010-09-16 12:07:13
编辑 - 它应该是过滤器() – 2010-09-16 12:23:20