Local Functional Interfaces
Olena Syrota
sirotae at gmail.com
Mon Sep 23 12:27:04 PDT 2013
Dear lambda dev team,
Recently I made experiments with lamdas and found exotic case.
I was not able to declare local interface to make a "local" lambda-function.
Why I needed this.
Suppose I was to implement "local" lamdba-function to be used only couple
of times inside my method.
Compiler did not allowed me to place interface inside function.
In my case it was interface Dropper to implement lambda-function that drops
last element.
void myMethod(...) {
Interface Dropper { dropLastSymbolInChain (List<List<String>> chain);}
Dropper d = x -> x.stream()
.map(e->e.subList(0, e.size()-2))
.collect(Collectors.toList());
List<List<String>> chain1Dropped = d.dropLastSymbolInChain(chain1);
List<List<String>> chain2Dropped = d.dropLastSymbolInChain(chain2);
}
I was forced to declare interface Dropper outside myMethod.
Should the proposition on local interfaces be submitted to jep?
Thank you.
Olena
More information about the lambda-dev
mailing list