import java.util.ArrayList; import java.util.List; import java.util.function.BiFunction; import java.util.function.Function; class InferenceExample { public List convertAll(Function converter) { return invoke (MyArrayList::convertAll, converter); } protected R invoke(BiFunction, A, R> action, A arg) { return null; } public class MyArrayList extends ArrayList { public List convertAll(Function converter) { return null; } } }