TLDR:我想在扩展后使通用接口定义更严格。扩展通用接口并使其在Java中更严格
假设我们有他们可以操作的操作和请求/响应对象。
我定义了一个基本接口,它规定每个操作应该有执行方法。
public interface Operation<S, T> {
T execute(S request);
}
我想将它扩展到其他一些用于特定操作的接口。例如
public interface ReadOperation<S extends ReadRequest, T extends ReadResponse> extends Operations {
T execute(S readRequest);
}
通常我会希望重写基本接口与延伸接口更严格的定义执行定义。但不幸的是,由于java增加了一个带有新的执行定义的重载方法,所以无法实现。
我想了解我的直觉缺乏以及如何以其他某种形式实现它。告诉我,我是否犯了可怕的错误。
最近我可以在这里找到:Overriding a method contract in an extended interface that uses generics (Java)?
这是什么情况?目前还不完全清楚这会有什么好处。你能提供一些用例吗? –
@JimGarrison其中一个用法应该清楚上面 - 我想强制执行所有类型的操作,但由于操作的性质,我想要有不同类型的有界对象,他们可以在其上操作。这是否使事情变得不明确,或者一个具体的例子会更有帮助? – rajneesh2k10