lambda expression parameters

Peter Levart peter.levart at gmail.com
Tue Dec 18 15:16:34 PST 2012


What about "sole" final, like:

Predicate<String> isUpper = (final s) -> s.toUppercase().equals(s);

Regards, Peter

On 12/18/2012 11:31 PM, Brian Goetz wrote:
> Agreed that this is something that has the right "nudge" to it.
>
> One downside is that there is no keyword for "not final."  Which means
> this is not a question about "final by default", but "final by decree",
> unless we're willing to introduce new syntax for mutable (which we're
> not.)  That's not terrible -- most people would probably never even
> notice.  So, reasonable suggestion.
>
>
>
> On 12/18/2012 4:40 PM, Venkat Subramaniam wrote:
>> Hi
>>
>> Is there plans to make the inferred parameter of a lambda expression final by default.
>> Right now, we can't specify the parameter is final unless we provide it with the type.
>>
>> In the spirit of leaning towards immutability, which is a better practice, would it be possible to
>>
>> (a) make all inferred parameters of lambda expressions final, and
>> (b) to make it non-final, force the developers to explicitly request (like the mutable in F#).
>>
>> It's more of a wish-list, if that's something that can be considered.
>>
>> Thanks,
>>
>> Venkat
>>



More information about the lambda-dev mailing list