Hacker News new | ask | show | jobs
by iwince 4169 days ago
Where did "e" get declared at? It just seems to leap magically into existence.
1 comments

List<T>#forEach takes a Consumer<? super T>

Consumer<U> has a single abstract method

void accept(U u)

The lambda effectively is an anonymous class implementing that interface / that single method. U resolves to ? super String. I.e. it expects a method that takes String or a superclass thereof as its first parameter.

That's what e is. It all gets automatically pieced together at compile time via type inference.