我创建了一个名为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;
}

10-07 23:35