我有一個類定義如下:Java泛型 - 類型不匹配錯誤
public class MultiFacilitySearchDataProvider <T extends Facility & MilepostValue & Copyable<T>>
類有這個方法:
protected T getFacility(final FacilityInstance instance) {
final MultiFacilitySearchDAO dao = new MultiFacilitySearchDAO(instance);
ENM.execute(dao);
return dao.getResultModel(); // Compile error here
}
上述所謂的DAO方法是這樣的:
public MultiFacilitySearchModel getResultModel() {
return resultModel;
}
而MultiFacilitySearchModel定義如下:
public class MultiFacilitySearchModel implements Copyable<MultiFacilitySearchModel>, Facility,
Serializable, MilepostValue, MenuDisplayValues
的問題是,該線返回dao.getResultModel()將產生一個編譯錯誤「類型不匹配:不能從MultiFacilitySearchModel轉換到T」。我不明白爲什麼我得到這個錯誤,因爲MultiFacilitySearchModel實現了爲泛型類型T指定的三個接口。我錯過了什麼?