我正在尝试将实现DomainEntity的对象集合转换为实现DomainEntityDTO的对象集合。 DomainEntity对象提供了一种方法toDTO()来进行转换。
这是我的代码。
public class EntityCollectionConverter<T extends DomainEntityDTO, Y extends DomainEntity> {
public Collection<T> convert(Collection<Y> collection){
Collection<T> dtoList = new ArrayList<>();
for (DomainEntity domainObject : collection) {
DomainEntityDTO dto = domainObject.toDTO();
dtoList.add(dto); // Compiler: "T cannot be applied to DomainEntityDTO"
}
return dtoList;
}
}
行dtoList.add(dto);
无法编译,因为“T无法应用于DomainEntityDTO”。
接口DomainEntity如下所示:
public interface DomainEntity {
Long getId();
<T extends DomainEntityDTO> T toDTO();
}
知道我哪里错了吗?
答案 0 :(得分:0)
您需要声明类型为T
的变量。