gpt4 book ai didi

java - 一个方法可以返回不同的数据类型吗?

转载 作者:行者123 更新时间:2023-12-02 08:38:12 25 4
gpt4 key购买 nike

我有一个名为 matFactory() 的类。其中,有一个名为 lastAddedObj(..) 的方法。 .

后一种方法接收 ArrayList作为参数并返回此列表中最后添加的对象。

我的问题是:我有两种列表,ArrayList<Mat>ArrayList<MatOfKeyPoint>我想要方法 lastAddedObject适用于这两种类型。正如您看到下面的方法签名:

public Mat lastAddedObj(ArrayList<Mat> list) {
....
....
return list.get(size -1);
}

我希望这个方法能够同时用于 ArrayList<Mat>ArrayList<MatOfKeyPoint> ,因为正如您在上面看到的,如果我通过 ArrayList<Mat>它将返回Mat对象和 if 将通过 ArrayList<MatOfKeyPoint>它将返回MatOfKeyPoint对象。

如何解决这个问题?

最佳答案

我相信您正在寻找这个:

public <T> T lastAddedObj(ArrayList<T> list) {
return list.get(size - 1);
}

说明:

当您使用 ArrayList<Mat> 调用此方法时,Mat类型被推断并且 T (通用类型)被替换为 Mat 。对我的回答的一些评论建议您还应该将该方法标记为 static ,但这不是必需的。

这是关于泛型的教程:https://docs.oracle.com/javase/tutorial/extra/generics/methods.html

关于java - 一个方法可以返回不同的数据类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29410340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com