我有一个接口,将由几个不同的类来实现,每个类使用不同的类型和返回类型。返回类型可以从方法的泛型类型中推断出来,但我在实现时遇到了困难。
目前该接口如下所示:
public interface TransformUtilsBase<T> {
Class<?> transformToNhin(T request, BrokerContext brokerContext);
}
我希望Impl类的样子是这样的:
public class TransformUtilsXCPD implements TransformUtilsBase<foo> {
bar transformToNhin(foo request, BrokerContext brokerContext) {
code here
}
在具体实现中,我知道返回类型应该是什么。但在接口层面上,无法确定返回类型。
我本可以完全放弃使用接口,只需创建几个类,所有类都具有相同的方法名称,但由于它们都用于相同的目的,因此我希望将其规范化。只有类型不同。
或者我可以只有一个带有静态方法的大类,因为它们是实用操作,但管理具有许多相同名称的方法和所有必要的辅助方法(同样具有相同名称)的类变得难以控制。
实现接口似乎是规范功能的最佳选择,即使我不能使用静态方法。我只是无法想出如何处理返回类型。
编辑:扩展接口以显示完整示例,以防止进一步混淆。
public interface TransformUtilsBase<T, U> {
Class<?> transformToNhin(T request, BrokerContext brokerContext);
Class<?> transformToXca(U request, BrokerContext brokerContext);
}
实现
public class TransformUtilsXCPD implements TransformUtilsBase<Foo, Bar> {
Baz transformToNhin(Foo request, BrokerContext brokerContext) { code here }
Biz transformToXca(Bar request, BrokerContext brokerContext) { code here }
}