2013-03-20 38 views
1

假設我有以下類別Animal,FishCatFish通用下界方法

CatFish延伸FishFish延伸Animal

有一個泛型類MyPets,它有一個類型參數(泛型)T,並將用上述類的對象進行參數化。

我的問題是,如何在D中創建一個下界有界的方法,它將採用CatFish類的PARENT類的任何對象。

+1

[This](http://stackoverflow.com/questions/8403489/java-generic-methods-super-cant-be-used)可能會有所幫助。 – 2013-03-20 23:08:38

+0

謝謝。我會仔細研究一下。 – 2013-03-20 23:12:30

+0

什麼是'D'?這很重要,還是可以在任何地方聲明這種方法? – 2013-03-21 00:20:55

回答

1

You can't

TL; DR:

類型參數可以有幾個界限,就像在課堂上盒{...}。但是一個類型參數可以沒有下界,也就是說,不允許像Box {...}這樣的構造。爲什麼不?答案是:這是毫無意義的,因爲它不會給你買任何東西,是否允許。

0

You Can

它只是使用這樣的下界綁定泛型是有爭議的,不鼓勵。 基本使用:

public void treatAnimalWhichIsCatFishOrSuperType(Animal<? super CatFish> catFishOrParent){ 
} 

還有,當你想從這個方法返回一個泛型類型的實例其他替代方案,但你可以發現,在上面的鏈接。