簡體   English   中英

如何使用泛型類型聲明類-Java 1.7

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM