我正在研究的项目中有此方法(略):
public <T> T query(
final Extractor<T> extractor, final List result) {
//...
return extractor.extract(result)
//...
}
Run Code Online (Sandbox Code Playgroud)
提取器定义为:
public interface Extractor<T> {
T extract(List<Map<String, Object>> result);
}
Run Code Online (Sandbox Code Playgroud)
在Eclipse中没有任何错误,但是IntelliJ拒绝使用编译类Incompatible types: Required: T Found: Object,唯一的方法是将返回值强制转换为T或返回Object,而我无法弄清楚它为什么失败。