rma*_*aik 2 java list arraylist
我有一个名为的班级matFactory()
.在其中,有一个名为的方法lastAddedObj(..)
.
后一种方法接收ArrayList
一个参数作为参数,并返回此列表中最后添加的对象.
我的问题是:我有两个类型的列表,ArrayList<Mat>
和ArrayList<MatOfKeyPoint>
我想的方法lastAddedObject
是适用于这两种类型.正如您在下面看到的方法签名:
public Mat lastAddedObj(ArrayList<Mat> list) {
....
....
return list.get(size -1);
}
Run Code Online (Sandbox Code Playgroud)
我希望这种方法能够两个ArrayList<Mat>
和ArrayList<MatOfKeyPoint>
,因为当你看到上面的,如果我通过ArrayList<Mat>
它将返回Mat
对象,如果将通过ArrayList<MatOfKeyPoint>
将返回MatOfKeyPoint
对象.
如何解决这个问题?
我相信你在寻找这个:
public <T> T lastAddedObj(ArrayList<T> list) {
return list.get(size - 1);
}
Run Code Online (Sandbox Code Playgroud)
说明:
当您使用a调用此方法时ArrayList<Mat>
,将Mat
推断出类型,并将T
(泛型类型)替换为Mat
.对我的回答的一些评论建议你也应该将方法标记为static
,但这不是必需的.
这是一个关于泛型的教程:https://docs.oracle.com/javase/tutorial/extra/generics/methods.html
归档时间: |
|
查看次数: |
6858 次 |
最近记录: |