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