我确定这是重复的,但我的搜索关键字太常见了......我得到了很多点击,因为我不寻找的东西。我来自 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>
and实例化抽象类Class<UUID>
。