由以下数据类型混淆

时间:2013-10-28 04:56:37

标签: java generics

List<? extends List<? extends ObservationInteger>>

只是为了给你一个可能与问题无关的背景。尝试使用JAHMM库来构建和评分HMM。

函数的一个参数提到上面的数据类型,我不知道它的含义。

据我所知,在朋友的帮助下 List<? extends ObservationInteger>表示扩展“ObservationInteger”的任何类的实例列表,它是库中的有效类。

外部List<? extends List<?...使我感到困惑。

有人可以对此有所了解吗?

4 个答案:

答案 0 :(得分:3)

List<? extends List...表示它可以是实现List接口的任何集合的列表。

List<List<? extends ObservationInteger>> list = new ArrayList<List<ObservationInteger>>(); - 编译错误,因为没有? extends编译器需要完全匹配:

List<List<? ObservationInteger>> list = new ArrayList<List<? extends ObservationInteger>>(); - 确定

但这看起来更好

List<? extends List<? ObservationInteger>> list = new ArrayList<List<ObservationInteger>>(); - 确定

答案 1 :(得分:1)

它表示任何实现List接口的类,其中包含实现List接口的任何类的实例,其中任何类的实例都扩展为“ObservationInteger”

答案 2 :(得分:1)

它是List Objects,它们是扩展List.的类的所有实例。因为这些对象是Lists,的实例,每个实例都包含一个一定数量的Objects,它们都是扩展ObservationInteger的类的实例。

答案 3 :(得分:1)

这是一系列事物清单。将其可视化为二维结构(行和列)。

? extends表示它对List的任何子类型和ObservationInteger的任何子类型也有效。