[英]How to declare class using generics types - Java 1.7
我有以下課程:
public class AClass<T extends XYZClass> extends BFunction<DTOClass, T>{
@Override
public <T extends XYZClass> T apply(DTOClass input) {
return null;
}
}
其中T是泛型類型,BFunction是使用apply方法實現com.google.common.base.Function的函數。 問題在於該類聲明構造無效,因為它對應於以下apply方法:
@Override
public T apply(DTOClass input) {
return null;
}
我也嘗試過:
public class AClass extends BFunction<DTOClass, <T extends XYZClass> T>{
@Override
public <T extends XYZClass> T apply(DTOClass input) {
return null;
}
}
但是此語法無效。 您能建議我如何更正我的班級聲明嗎?
刪除在方法上聲明的類型變量:
public class AClass<T extends XYZClass> extends BFunction<DTOClass, T>{
@Override
public /* remove this */ T apply(DTOClass input) {
return null;
}
}
您正在嘗試聲明另一個稱為T
的類型變量,該變量將隱藏在類中聲明的類型變量。
您聲明一個通用的方法,在你的父類,其中<T extends XYZClass>
條款無關與<T extends XYZClass>
在你的類聲明。
您可能想要做的是從方法聲明中刪除<T extends XYZClass>
並完全覆蓋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.