我正在尝试将实现 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();
}
知道我哪里出错了吗?