gpt4 book ai didi

java - 有没有一种方法可以操作通用类型的集合?

转载 作者:行者123 更新时间:2023-11-30 03:34:46 25 4
gpt4 key购买 nike

我有一个方法可以对某种形式的集合执行操作。但是,是否可以扩展运行该方法的集合类型的数量?我指的不是 ArrayList 等通用集合,而是该方法适用于 ArrayList、数组、集合、集合、哈希表吗?

最佳答案

虽然您无法直接扩展该方法来支持您提到的其他类型,但您可以从 API 的角度通过重载方法来实现这一点。例如,如果您实现一个方法来处理所有集合:

public <T> void processData(Collection<T> data) { ... }

这适用于所有实现Collection的类型。您可以为每种不是 Collection 的类型重载此方法。例如:

public <T> void processData(T[] data) {
processData(Arrays.asList(data));
}

在此示例中,您也重复使用处理数组的 Collection 结构的相同方法。每种不实现Collection或数组的类型都需要另一个专门的重载方法,将其转换为Collection,或更可能的是,在一个这样才有意义。

最后,通过重载方法,可以调用同名方法,传入多种类型。因此,从 API 的角度来看,您看起来总是在调用相同的方法:

Collection<String> coll = new ArrayList<String>();
int[] arrayOfInts = new int[10];

// You can call processData on both of these types now
processData(coll);
processData(arrayOfInts);

关于java - 有没有一种方法可以操作通用类型的集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28256449/

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