RFR: 8263233: Update java.net and java.nio to use instanceof pattern variable [v3]
Mark Sheppard
msheppar at openjdk.java.net
Tue Mar 9 20:55:15 UTC 2021
On Tue, 9 Mar 2021 20:26:19 GMT, Daniel Fuchs <dfuchs at openjdk.org> wrote:
>> src/java.base/share/classes/java/net/NetMulticastSocket.java line 219:
>>
>>> 217: if (addr == null)
>>> 218: addr = new InetSocketAddress(0);
>>> 219: if (!(addr instanceof InetSocketAddress epoint))
>>
>> in the context of this type of change the negative logic is a little obtuse or disjoint in the new style variable declaration, and its subsequent use. I'd find it a more natural flow and easier to read with the instanceof pattern prefacing a block in which the variable is used
>> if (addr instanceof InetSocketAddress epoint) {
>> // a block which is using the epoint variable
>> if (epoint.isUnresolved)
>> throw new SocketException("Unresolved address");
>> InetAddress iaddr = epoint.getAddress;
>> etc, etc ...
>> } else {
>> throw new IllegalArgumentException("Unsupported address type!");
>> }
>
> The disadvantage is that it would add another level of braces.
maybe ... I find it would provide an easier flow to code ... an "easy on the eye" call flow linkage - the variable is declared and then used .... instead of the disconnect of throwing an exception or non immediate use of the variable.
but sure, isn't code somewhat idiosyncratic!!
-------------
PR: https://git.openjdk.java.net/jdk/pull/2890
More information about the net-dev
mailing list