我正在使用以下界面,如下所示
public interface ZaestrorardRule {
Map<String, List<MMTM>> exceute(String jobCode, String Plientlo) throws AaestroRardNetworkException;
}
然后有一个实现它的类,如下所示
public class AaestroRardBusinessRNFRuleImpl implements ZaestrorardRule {
public Map<String, List<MMTM>> exceute(String jobCode, String Plientlo) throws AaestroRardNetworkException {
}
}
现在让我说我正在开发除了上面显示的ZaestrorardRule之外的其他功能,它具有与ZaestrorardRule相同的功能,然后我必须创建一个单独的界面,如下所示
public interface WWaestrorardRule {
Map<String, List<MMTM>> exceute(String jobCode, String Plientlo) throws AaestroRardNetworkException;
}
我的查询是我可以在界面中使用泛型,以便在界面结构固定时会有单个界面。
答案 0 :(得分:0)
在Java中,我们可以扩展接口。您可以创建父接口:
public interface GenericRule {
Map<String, List<MMTM>> exceute(String jobCode, String Plientlo) throws AaestroRardNetworkException;
}
像这样更改你的两个界面
public interface ZaestrorardRule extends GenericRule {
}
public interface WWaestrorardRule extends GenericRule {
}
答案 1 :(得分:0)
如问题评论中所述,您实际上并不需要创建通用接口,因为您的接口都具有相同的参数和返回类型。相反,你要做的是:
public interface Rule {
Map<String, List<MMTM>> execute(String s1, String s2) throws YourException;
}
然后你有Rule
的实现:
public class ZaestrorardRule implements Rule {
// implement interface
}
public class WWaestrorardRule implements Rule {
// implement interface
}
这是应该如何使用接口。
如果您需要不同的参数类型或返回类型,那么您将开始使用泛型。您的界面已经类似于java.util.function.BiFunction
,除了它抛出一个自定义异常(很可能是一个已检查的异常)。只需执行BiFunction
所做的事情:
public interface Rule<T, U, R> {
R execute(T t, U u) throws YourException;
}
如果两个参数总是相同的类型,也可以通过将接口声明为Rule<T, R>
而将方法声明为R execute(T t1, T t2) throws YourException
来实现这一点。