2

假设我有以下课程Animal,FishCatFish.

CatFish延伸FishFish延伸Animal

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

我的问题是,我如何创建一个下界方法,D该方法将采用该类的父类的任何对象CatFish

4

2 回答 2

1

你不能

TL;博士:

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

于 2013-03-21T13:28:05.597 回答
1

你可以

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

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

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

于 2017-05-16T16:37:26.013 回答