【发布时间】:2022-07-06 21:37:20
【问题描述】:
我有以下实现,并尝试在我的 Java 应用程序中通过泛型使用 2 种类型:
服务:
public interface PDFService<T, S> {
String generatePdf(UUID uuid);
}
ServiceImpl:
@Service
@RequiredArgsConstructor
public class PDFServiceImpl<T, S> implements PDFService<T, S> {
private final T brandService;
private final S brandProductFinder;
public String createHtml(UUID uuid) {
// cannot recognize findByUuid method
BrandDTO brandDTO = brandService.findByUuid(brandUuid);
// ...
}
private void setProductInformationToHtml(Context context, BrandDTO brandDTO) {
// cannot recognize findAll method
List<ProductDTO> productDTOS = new ArrayList<>(brandProductFinder.findAll(request));
// ...
}
}
控制器:
public class PDFController {
// code omitted for brevity
private final PDFService<BrandService, BrandProductFinder> pdfService;
public String createPdf(@PathVariable UUID uuid) {
return pdfService.createPdf(uuid);
}
}
我没有更改 BrandService 中的任何内容,但不知道我的实现有什么问题。那么,如何在这种情况下正确使用泛型呢?我也尝试使用PDFService<T, S extends ProductFinder>,但不确定在服务和服务实现中的正确使用。有什么想法吗?
【问题讨论】:
标签: java oop generics interface polymorphism