RFR: JDK-8321545: Override toString() for Format subclasses
Justin Lu
jlu at openjdk.org
Wed Jan 10 21:10:43 UTC 2024
Please review this PR which implements toString() for the `Format` subclasses. Corresponding CSR: [JDK-8323088](https://bugs.openjdk.org/browse/JDK-8323088)
The general specification follows a template that provides the locale (if the class is localized) and any relevant patterns. The specification was intentionally kept minimal and deliberately worded as "for debugging".
`MessageFormat` is the only Format subclass that can be constructed with a null locale, (hence the ternary in the implementation to prevent a potential NPE).
`ListFormat` already implemented toString(), and thus only the specification was updated to match the other Format subclasses.
An example of all the classes has output such as
CompactNumberFormat [locale: "English (United States)", compact patterns: "[, , , {one:0K other:0K}, {one:00K other:00K}, {one:000K other:000K}, {one:0M other:0M}, {one:00M other:00M}, {one:000M other:000M}, {one:0B other:0B}, {one:00B other:00B}, {one:000B other:000B}, {one:0T other:0T}, {one:00T other:00T}, {one:000T other:000T}]", decimal pattern: "foo#0.00#baz"]
DecimalFormat [locale: "English (United States)", pattern: "foo#0.00#baz"]
SimpleDateFormat [locale: "Chinese (China)", pattern: "EEE, MMM d, ''yy"]
ListFormat [locale: "English (United States)", start: "{0}, {1}", middle: "{0}, {1}", end: "{0}, and {1}", two: "{0} and {1}", three: "{0}, {1}, and {2}"]
MessageFormat [locale: "Chinese (China)", pattern: "foo {0}"]
ChoiceFormat [pattern: "0#foo"]
-------------
Commit messages:
- init
Changes: https://git.openjdk.org/jdk/pull/17355/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=17355&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8321545
Stats: 62 lines in 6 files changed: 55 ins; 0 del; 7 mod
Patch: https://git.openjdk.org/jdk/pull/17355.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/17355/head:pull/17355
PR: https://git.openjdk.org/jdk/pull/17355
More information about the core-libs-dev
mailing list