【发布时间】:2021-10-09 18:54:48
【问题描述】:
我是 Java 新手,正在致力于实现通用接口,这就是我需要帮助的地方。
我想用 Java 实现一个通用接口,它扩展了另一个接口。这就是当前界面结构的样子 -
interface ItemsProviderInterface<ExtReq, ExtRes>
extends GenericItemProviderInterface<ItemRequest, ExtReq, ExtRes, ItemResponse> {}
interface GenericItemProviderInterface<Req, ExtReq, ExtRes, Res>{
ExtReq convertInput(Req req)
Res convertResponse(ExtRes res)
ExtRes request(ExtReq req)
}
我想实现ItemsProviderInterface 接口并为convertInput(), convertResponse(), request() 方法提供定义。
也许像 -
class itemsProvider<> implements ItemsProviderInterface<>
我不确定使用哪个泛型类型来定义类。对应于 ItemsProviderInterface 或 GenericItemProviderInterface 的泛型类型。我阅读了很多博客文章并在 StackOverflow 上搜索了一个类似的问题,但找不到。非常感谢任何帮助。
【问题讨论】:
-
您正在实现
ItemsProviderInterface,因此该接口是您关心的通用类型。现在,ExtReq和ExtRes应该是什么类型,我们无法告诉您,因为这完全取决于您希望代码做什么。将您的 itemsProvider 声明为通用以及class itemsProvider<ExtReq, ExtRes> implements ItemsProviderInterface<ExtReq, ExtRes>或非通用并固定为特定类型可能是有意义的。class itemsProvider implements ItemsProviderInterface<SomeType, AnotherType>其中SomeType是一个实际类型,例如 String
标签: java class generics design-patterns interface