Я пытаюсь написать свою собственную "функциональную" маленькую библиотеку на 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 в качестве первого параметра, я решил, что охватил все случаи.