Java 泛型中何时使用或如何使用多个绑定

Java 泛型中何时使用或如何使用多个绑定,java,generics,multiple-bounds,Java,Generics,Multiple Bounds,我是新来的泛型和学习泛型从听到 我正在学习多重边界 我的理解是,您可以像下面这样指定类 class D <T extends A & B & C> { /* ... */ } D<A> d = new D<>(); D类{/*…*/} D=新的D(); 仅当A同时实现B和C时 其他明智的编译时错误将发生 另外,B和C应该是接口,否则//接口会发生编译时错误 我不是说通配符 我的问题是我没有得到任何真正的编程使用这个。 我正在寻找一种方法/

我是新来的泛型和学习泛型从听到

我正在学习多重边界 我的理解是,您可以像下面这样指定类

class D <T extends A & B & C> { /* ... */ }
D<A> d = new D<>();
D类{/*…*/}
D=新的D();
仅当A同时实现B和C时 其他明智的编译时错误将发生 另外,B和C应该是接口,否则//接口会发生编译时错误

我不是说通配符

我的问题是我没有得到任何真正的编程使用这个。 我正在寻找一种方法/示例,如何在编码时使用多个绑定泛型

我应该什么时候用


谢谢

请考虑以下片段:

class SpineWarmCollection <T extends Vertebrate & Warmblooded> { /* ... */ }

class Mammal extends Vertebrate implements Warmblooded {}

class Bird extends Vertebrate implements Warmblooded {}

class Reptile extends Vertebrate {}

SpineWarmCollection<Mammal> mammalCollection = new SpineWarmCollection<>();

SpineWarmCollection<Bird> birdCollection = new SpineWarmCollection<>();

SpineWarmCollection<Reptile> reptileCollection = new SpineWarmCollection<>(); // Generates a compile error, since Reptiles are not warmblooded.
class SpineWarmCollection{/*…*/}
类哺乳动物延伸脊椎动物实施温血{}
类鸟类扩展脊椎动物实现温血{}
爬行动物类延伸到脊椎动物{}
SpineWarmCollection=新SpineWarmCollection();
SpineWarmCollection birdCollection=新SpineWarmCollection();
SpineWarmCollection爬行动物采集=新SpineWarmCollection();//生成一个编译错误,因为爬行动物没有温血。
脊椎动物是动物分类学中的一类;然而,热情是一种特质。温血动物没有单一的祖先类别,因为哺乳动物和鸟类都是温血动物,但它们的共同祖先脊椎动物却不是

因为T只能是一个扩展了脊椎动物和温血动物的类,所以泛型可以访问脊椎动物和温血动物中声明的任何方法


你甚至不需要上课。T只能扩展接口,这将允许实现接口的任何类集使用泛型,即使这些类集之间完全无关。

这个问题及其答案就是一个很好的例子:)