top | item 8907886

(no title)

iwince | 11 years ago

Where did "e" get declared at? It just seems to leap magically into existence.

discuss

order

the8472|11 years ago

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.