向使用泛型

时间:2017-08-16 09:34:00

标签: java generics

我想做一个高度抽象的水平。我得到了

public abstract class CrudRepositoryDtoConverter<R extends CrudRepository<E, Integer>, E, D> implements CrudDTO<D>

我想将它用作另一个抽象类的父级

public abstract class AbstractController

我尝试了多次组合,没有成功,例如

public abstract class AbstractController<K extends CrudRepositoryDtoConverter<R extends CrudRepository<E, Integer>, E, D>> {
    @Autowired
    private K repository;

}

这一个无法编译,我没有找到泛型类型的语法,我错了吗?我的想法甚至可能吗?

1 个答案:

答案 0 :(得分:4)

这是一个非常复杂的定义,但如果您确实需要它,可以按如下方式编写:

abstract class AbstractController<R extends CrudRepository<E, Integer>, E, D, K extends CrudRepositoryDtoConverter<R, E, D>> {

}

如您所见,RED必须声明为类AbstractController的通用类型参数,以便您在{{K extends CrudRepositoryDtoConverter<R, E, D>中引用它们1}}。