考虑以下Java interface
public interface Script<T> {
public T execute(Map<String,Object> args);
}
然后我们有一个
public interface SubScript<T> extends Script<T> {
public T execute(String knownTypeArgument, Map<String,Object> args);
}
Sub 中knownTypeArgument的方法总是需要这里。execute并且在SubScript接口中public T execute(Map<String,Object> args);不需要该方法。
我的问题是,定义一个子接口只是为了添加一个或两个参数是标准/正确的做法吗?
SubScript如果根本没有定义并knownTypeArgument传入,会导致实现中的错误代码Map<String,Object> args吗?
PS:两者都execute(String knownTypeArgument, Map<String,Object> args);应该execute(Map<String,Object> args);服务于完全相同的目的,只是在某些情况下execute需要更多信息。
PPS:根据 stackoverflow 规则,我正在寻找我遗漏的事实/要点,而不是讨论。