New candidate JEP: 443: Unnamed Patterns and Variables (Preview)
Red IO
redio.development at gmail.com
Wed Mar 22 12:37:40 UTC 2023
I think he suggests to get rid of the variable entirely like in his example:
try {
} catch (Exception) //<- nothing here
{
}
And try (new AutoclosableImpl()) {//<- no assignment to a variable
}
Great regards
RedIODev
On Wed, Mar 22, 2023, 13:19 Brian Goetz <brian.goetz at oracle.com> wrote:
>
>
> On 3/21/2023 5:39 PM, Holo The Sage Wolf wrote:
>
> Is there a reason not to allow implicit Unnamed Variables in
> try-with-resources and Catch-block?
>
>
> The JEP already describes these cases:
>
> Unnamed variables
>
> The following kinds of declarations can introduce either a named variable
> (denoted by an identifier) or an unnamed variable (denoted by an
> underscore):
>
> - A local variable declaration statement in a block (JLS 14.4.2),
> - A resource specification of a try-with-resources statement (JLS
> 14.20.3),
> - The header of a basic for statement (JLS 14.14.1),
> - The header of an enhanced for loop (JLS 14.14.2),
> - An exception parameter of a catch block (JLS 14.20), and
> - A formal parameter of a lambda expression (JLS 15.27.1).
>
>
> Try with resources, and catch blocks, are listed as places where you can
> use unnamed variables. Am I undersatnding your question properly?
>
>
>
> To allow:
>
> try (Scope.open()) {
> ...
> }
> ---
> try { ... }
> catch (Exception) { ... }
>
> to be implicitly
>
> try (var _ = Scope.open()) {
> ...
> }
> ---
> try { ... }
> catch (Exception _) { ... }
>
> Unlike a normal expression, and expression on the RHS of a
> try-with-resources variable has an explicit context, there is no fear of
> someone forgetting the result of the expression by mistake.
>
> In a Catch block the exception is uniquely accessible through the variable
> declared in the declaration of the block, so there is no fear that someone
> will get confused by this implicitness.
>
> This implicitness will make stuff like logging context, which is far from
> a niche use case, much more elegant.
>
> On Tue, Mar 21, 2023 at 9:17 PM Mark Reinhold <mark.reinhold at oracle.com>
> wrote:
>
>> https://openjdk.org/jeps/443
>>
>> Summary: Enhance the Java language with unnamed patterns, which match
>> a record component without stating the component's name or type,
>> and unnamed variables, which can be initialized but not used. Both
>> are denoted by an underscore character, _. This is a preview language
>> feature.
>>
>> - Mark
>
>
>
> --
> Holo The Wise Wolf Of Yoitsu
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/amber-dev/attachments/20230322/e81e57cd/attachment.htm>
More information about the amber-dev
mailing list