我创建了一个名为Box
的类,它具有一个类型参数。声明如下:public class Box<T> {...}
我还创建了一个包含这些框的表,并且该表具有用于此表上许多不同操作的吸气剂(获取选定内容等)。声明看起来像这样:public class BoxContainer<T> {...}
。如果我写new BoxContainer<Animal>()
,则get选定的方法将返回Animal
。那是显而易见的。但是是否可以确保BoxContainer仅接受Box<T>
类型的类型参数?我试图写public class BoxContainer<Box<T>> {...}
,但是由于某些原因,这是不允许的。这可能吗?还是更好的方法?
最佳答案
使用第二类参数
public class BoxContainer<T, Y extends Box<T>> {...}
或者只在容器内使用Box:
public class BoxContainer<T> {
List<Box<T>> innerList;
}