New JEP: Concise Method Bodies
Alex Buckley
alex.buckley at oracle.com
Mon Sep 24 17:17:18 UTC 2018
On 9/21/2018 4:07 PM, Kevin Bourrillion wrote:
> "The method reference form can use most kinds of method references after
> the = sign: static and unbound method references, bound method
> references (if the receiver *variable* is in scope for the method
> declaration)"
>
> Can we still bind to any expression?
>
> private String a(String b, int c)
> throws SomeCheckedException = *d.e()*::f;
No limitation is intended on the receiver, as long as the method
reference expression would be legal if it appeared in the traditional
body of method `a`. (Details of this translation remain to be worked out.)
Scope isn't the right concept to appeal to; for example, an instance
variable is in scope throughout a static method, but that doesn't mean
the variable can be used in the body of the static method. I'll remove
the troublesome clause. Array creation references should also be
mentioned alongside constructor references.
> ... and would this be valid whether it is `e()` or `f()` (or both) that
> throws SomeCheckedException?
I expect so. Do you have a situation that suggests otherwise?
Alex
More information about the amber-spec-experts
mailing list