blob: eeab573a57a10be388b0d31ff5f678ece719efc2 [file] [log] [blame]
import java.util.*;
class Test {
List<String> getList(Function<Object, String> function) {
/*
* When the first argument below is a raw type it turns red because IDEA thinks the return
* type is Collection<>. javac and Eclipse don't care
*/
return transform(new ArrayList(), new ArrayList<String>(), function);
}
<R, S, T extends Collection<S>> T transform(Iterable<? extends R> oldCollection, T newCollection, Function<R, S> function) {
for (R r : oldCollection) {
newCollection.add(function.apply(r));
}
return newCollection;
}
interface Function<X, Y> {
Y apply(X input);
}
}