通用下有界方法

时间:2013-03-20 23:01:01

标签: java generics lower-bound

假设我有以下课程AnimalFishCatFish

CatFish延伸FishFish延伸Animal

有一个名为MyPets的泛型类,它有一个名为T的类型参数(泛型),并且将使用上述类的对象进行参数化。

我的问题是,如何在D中创建一个下限方法,该方法将采用CatFish类的PARENT类的任何对象。

2 个答案:

答案 0 :(得分:1)

You can't

TL; DR:

  

类型参数可以有多个边界,例如类Box {...}。但是类型参数不能没有下限,也就是说,不允许使用类Box {...}等构造。为什么不?答案是:它是没有意义的,因为如果允许,它就不会给你任何东西。

答案 1 :(得分:0)

You Can

它只是使用这种下界泛型是有争议的,不鼓励。 基本用途:

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

当您想从此方法返回泛型类型的实例时,还有其他选择,但您可以在上面的链接中找到它。