考虑以下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 规则,我正在寻找我遗漏的事实/要点,而不是讨论。