我想实现一个带有签名的函数
static boolean checkAnyOutOfBoundary(int[] index,ArrayList<ArrayList<T>> list)
我想用其他自己创建的类(DocScore)替换T。我尝试用 Object 代替 T。但是当我尝试实例化列表实例时,例如
ArrayList<ArrayList<Object>> DocScoreList = new ArrayList<ArrayList<Object>>();
for (int i = 0; i < index.length; i++)
DocScoreList.add(root.children.get(i).docList);
The type of root.children.get(i).docList is ArrayList<DocScore>
我无法将元素添加到 DocScoreList 中。有谁知道我该如何实现这个?
最佳答案
所以您要添加 ArrayList<DocScore>
到 ArrayList<ArrayList<Object>>
但 add 方法需要 ArrayList<Object>
.
您能提供ArrayList<DocStore>
吗?哪里ArrayList<Object>
是必须的?不,因为A bag of banana is not a bag of fruit
所以DocScoreList
必须是ArrayList
ArrayList<DocStore>
的某事可以添加。一些例子是:
-
ArrayList<DocStore>
实际类型 -
List<DocStore>
因为ArrayList<T>
是List<T>
-
ArrayList<? extends Object>
(直接或间接)扩展Object
的某种未知类型的列表。自DocStore
符合标准? extends Object
这会起作用。 -
List<? extends Object>
- 等等。你明白了。
关于java - 不确定如何在 Java 中编写方法,就像在 c 中编写模板一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14902087/