[英]Lazy generic type pass in java
假設我的界面Status
很簡單
interface Status {
Integer getNumber();
}
並有簡單的界面來檢索它:
interface A<T extends Status> {
T getStatus();
}
我感興趣的內容可以簡化為:
interface DateStatus extends Status {
Date getDate();
}
interface B<T extends DateStatus> extends A<T> {
}
對於從A
擴展的接口B
方法, getStatus()
返回DateStatus
的實例。
簡單的例子:
A.getStatus() -> Status
B.getStatus() -> Status
B<DateStatus>.getStatus() -> DateStatus
如何在不添加通配符的情況下實現B.getStatus()
-> DateStatus
?
您需要做的是在B的定義中覆蓋getStatus :
public interface B<T extends DateStatus> extends A<T> {
@Override
T getStatus();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.