我有一个接口,它将由几个不同的类实现,每个类都使用不同的类型和返回类型。可以从方法泛型类型推断返回类型,但我在实现这一点时遇到了麻烦。
目前的界面是这样的:
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
}
在 impl 我知道返回类型应该是什么。在接口级别没有办法告诉。
我可以完全放弃一个接口,只创建几个具有相同方法名称的类,但我想将其形式化,因为它们都用于相同的目的。只是种类不同。
或者我可以只拥有一大类静态方法,因为它们是 util 操作,但是管理一个具有这么多同名方法以及所有必要的辅助方法(同样都是同名)的类变得笨拙。
实现接口似乎是形式化功能的最佳选择,即使我无法使用静态方法。我只是不知道如何处理返回类型。
编辑:扩展界面以显示完整示例,以防止进一步混淆。界面
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 }
}