RFR: 8251989: Hex formatting and parsing utility [v3]
Daniel Fuchs
dfuchs at openjdk.java.net
Thu Oct 15 08:59:24 UTC 2020
On Wed, 14 Oct 2020 19:12:37 GMT, Roger Riggs <rriggs at openjdk.org> wrote:
>> java.util.HexFormat utility:
>>
>> - Format and parse hexadecimal strings, with parameters for delimiter, prefix, suffix and upper/lowercase
>> - Static factories and builder methods to create HexFormat copies with modified parameters.
>> - Consistent naming of methods for conversion of byte arrays to formatted strings and back: formatHex and parseHex
>> - Consistent naming of methods for conversion of primitive types: toHexDigits... and fromHexDigits...
>> - Prefix and suffixes now apply to each formatted value, not the string as a whole
>> - Using java.util.Appendable as a target for buffered conversions so output to Writers and PrintStreams
>> like System.out are supported in addition to StringBuilder. (IOExceptions are converted to unchecked exceptions)
>> - Immutable and thread safe, a "value-based" class
>>
>> See the [HexFormat
>> javadoc](http://cr.openjdk.java.net/~rriggs/8251989-hex-formatter/java.base/java/util/HexFormat.html) for details.
>> Review comments and suggestions welcome.
>
> Roger Riggs has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev
> excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since
> the last revision:
> - Added assertions to testVariableLength and samples
> - Merge branch 'master' into 8251989-hex-formatter
> - temp updates
> - Various code review comments, rename UpperCase and LowerCase methods to match Character, remove unnecessary Class name
> qualifications, etc.
> - 8251989: Hex formatting and parsing utility
This version looks much better to me, thanks!
Still some references to the non-existing `format` method (spotted by @Marcono1234 )
src/java.base/share/classes/java/util/HexFormat.java line 64:
> 62: * and {@link #formatHex(Appendable, byte[]) formatHex(Appendable, byte[])}.
> 63: * The formatted output can be appended to {@link StringBuilder}, {@link System#out},
> 64: * {@link java.io.Writer}, and {@link java.io.PrintStream}, all of which are {@link Appendable}s.
I would argue that the `s` is not necessary: `... all of which are {@link Appendable}.`
-------------
PR: https://git.openjdk.java.net/jdk/pull/482
More information about the core-libs-dev
mailing list