<i18n dev> RFR: 8267670: Update java.io, java.math, and java.text to use switch expressions
    Chris Hegarty 
    chegar at openjdk.java.net
       
    Tue May 25 12:34:55 UTC 2021
    
    
  
On Tue, 25 May 2021 09:37:58 GMT, Patrick Concannon <pconcannon at openjdk.org> wrote:
> Hi,
> 
> Could someone please review my code for updating the code in the `java.io`, `java.math`, and `java.text` packages to make use of the switch expressions?
> 
> Kind regards,
> Patrick
src/java.base/share/classes/java/io/ObjectInputStream.java line 1877:
> 1875:                 descriptor.checkInitialized();
> 1876:             }
> 1877:             default                 -> throw new StreamCorruptedException(
What would you think of assigning descriptor with the value returned from evaluating the switch?
Either:
1) 
ObjectStreamClass descriptor = switch (tc) {
        case TC_NULL            -> (ObjectStreamClass) readNull();
        case TC_PROXYCLASSDESC  -> readProxyDesc(unshared);
        case TC_CLASSDESC       -> readNonProxyDesc(unshared);
        case TC_REFERENCE       -> readAndCheckHandle(unshared);
        default -> throw new StreamCorruptedException(String.format("invalid type code: %02X", tc));
    };
    return descriptor;
}
, where the body of TC_REFERENCE is enclosed in readAndCheckHandle,   OR
2) Simply 
  case TC_REFERENCE       -> {
        var d = (ObjectStreamClass)readHandle(unshared);
        // Should only reference initialized class descriptors
        d.checkInitialized();
        yield d; }
-------------
PR: https://git.openjdk.java.net/jdk/pull/4182
    
    
More information about the i18n-dev
mailing list