在一个抽象类中,我想传递一个泛型类作为函数的参数,但我真的不知道如何。
这是!
public abstract class AbstractConverter<S, T> {
private Mapper mapper = new DozerBeanMapper();
protected T DTOtoEntityConverter(S instance) {
T destObject = mapper.map(instance, Class<T>);
return destObject;
}
}
但我不能将Class作为参数传递。
答案 0 :(得分:3)
protected T DTOtoEntityConverter(S instance, Class<T> clazz) {
return mapper.map(instance, clazz);
}
您需要Class<T>
的实例,并且您也应该将其传递给方法。
如果类有一个方法,我会重写该方法并删除类泛型:
public <S, T> T convertDTOToEntityByClass(S DTO, Class<T> clazz) { ... }
答案 1 :(得分:0)
执行此操作mapper.map(instance, Class<T>);
就像尝试通过传递参数类型来调用方法一样。
喜欢做System.out.println(Integer);
所以你需要传递一个类的实例..这就是你需要做的原因
Class<T> foo = //init the class here
mapper.map(instance, foo);