gpt4 book ai didi

java - 为什么我不能将 String 数组与采用 Iterable 作为参数的方法一起使用?

转载 作者:行者123 更新时间:2023-12-02 07:57:22 26 4
gpt4 key购买 nike

我正在尝试用 Java 编写我自己的“功能性”小库。如果我有这个功能:

public static <T> List<T> filter(Iterable<T> source,BooleanTest predicate)
{
List<T> results = new ArrayList<T>();
for(T t : source)
{
if(predicate.ok(t))
results.add(t);
}
return results;
}

为什么我不能将它与此代码片段一起使用:

String strings[] = {"one","two","three"};
List<String> containingO = IterableFuncs.filter(strings,new BooleanTest() {
public boolean ok(String obj) {
return obj.indexOf("o") != -1;
}
});

据我所知,Java 数组实现了 Iterable,对吧?需要更改哪些内容才能使该函数适用于数组和集合?通过选择 Iterable 作为第一个参数,我认为我涵盖了所有情况。

最佳答案

不幸的是,数组没有实现 Java 中的任何接口(interface)。 enhanced for loop分别处理数组可迭代对象。

但是,您可以使用 Arrays.asList(T...) 将数组包装在 List<T> 中这是可迭代的。

就“功能库”方面而言,您可能应该看看 Google Collections其中有很多类似的东西。

关于java - 为什么我不能将 String 数组与采用 Iterable 作为参数的方法一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2044820/

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