在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  HTML/ java泛型類繼承問題?

java泛型類繼承問題?

如題所示,想通過繼承GeoResult類來擴(kuò)展屬性

   //GeoResult 類
public class GeoResult<T> implements Serializable {
    private static final long serialVersionUID = 1637452570977581370L;    
    private final T content;    private final Distance distance;   
     public GeoResult(T content, Distance distance) {
        Assert.notNull(content, "Content must not be null!");
        Assert.notNull(distance, "Distance must not be null!");        
        this.content = content;        
        this.distance = distance;
    }
}

//擴(kuò)展GeoResult類
public class GeoExtendResult<T> extends GeoResult<T> implements Serializable{
 
    public GeoExtendResult(T content, Distance distance) {
        super(content, distance);
    }
}

//這是正確的
List<GeoResult<RedisGeoCommands.GeoLocation<String>>> geoResultList =  radiusGeo.getContent();
//報(bào)類型不匹配
List<GeoExtendResult<RedisGeoCommands.GeoLocation<String>>> geoResultList =  radiusGeo.getContent();



圖片描述

回答
編輯回答
傲寒

我倒是看懂了你想做什么,但你這問題描述的有點(diǎn)問題。泛型的特點(diǎn)是泛,給你舉個(gè)例子吧
針對(duì)泛型接口:

GeoExtendResult extends GeoResult<?> //不限定泛型類型
GeoExtendResult extends GeoResult<RedisDemo.GeoList<String>  // 限定泛型類型為RedisDemo.GeoList<String> 

泛型類:

GeoExtResult<T> extends GeoResult<T> //子類也想用泛型必須添加泛型




第三次更新:

public class GenericT<T> implements Serializable {

    private static final long serialVersionUID = 1637452570977581370L;
    private final T content;
    private final String distance;

    public GenericT(T content, String distance) {
        this.content = content;
        this.distance = distance;
    }
}


public class GenericExtT<T> extends GenericT<T> {

    public GenericExtT(T content, String distance) {
        super(content, distance);
    }

    public List<GenericExtT<T>> getContent() {
        return Collections.unmodifiableList(Lists.newArrayList());
    }

    @Autowired GenericExtT genericExtT;
    public void main(String[] args){
        //這是正確的
        List<GenericExtT<? extends T>> geoResultList =  genericExtT.getContent();
    }

}

2018年1月1日 01:26