我敢肯定這是一個重複的,但我的搜索關鍵字太常見了...我得到了很多點擊,我沒有找的東西。我來自C#,Java泛型似乎稍微落後於.NET實現,所以這對我來說非常令人沮喪。呼叫基礎構造函數與不同的參數比子類的構造函數
我有一個抽象類BaseRepository像這樣:
public abstract class BaseRepository<T, K> implements Repository<T, K> {
private Class<T> type;
private Class<K> keyType;
public BaseRepository(Class<T> clazz, Class<K> kClazz) {
type = clazz;
keyType = kClazz;
}
protected Class<T> getType() {
return type;
}
protected Class<K> getKeyType(){
return keyType;
}
}
現在我想從我的基類派生與EmployeeRepository
像這樣:
public class EmployeeRepository extends BaseRepository<Employee, UUID>{
}
用c#,我就不需要做這樣的英雄努力來實例化基類,但似乎Java的泛型實現要求您在構造函數中傳遞泛型類型。
那麼如何爲我的EmployeeRepository
類創建一個無參數構造函數,該類實例化基類的實體類型爲Employee
,密鑰類型爲UUID
?我希望能夠寫這篇文章:
EmployeeRepository foo = new EmployeeRepository();
...,並將它實例化抽象類Class<Employee>
和Class<UUID>
。
你爲什麼要到有「型」和「關鍵字類型」字段? – Fortega 2013-03-11 15:18:33
我需要引用基類的其他方法中的類型。 – 2013-03-11 15:19:31