hg: jdk8/tl/jdk: 8014383: StringJoiner example in class description not in sync with streams API (original) (raw)

Roel Spilker r.spilker at gmail.com
Tue Jun 4 14:16:01 UTC 2013


Looking at the implementation, the code in toString suggest that it's worthwhile to optimize for an empty suffix (although I doubt that this optimization has any measurable effects). But the constructor always concatenates the prefix and the suffix, which results in both a new string instance and a StringBuilder. If an empty suffix is common (actually, having a separate constructor and the current toString implementation both suggest it is), I think that the initializing the emptyValue field in the constructor should be written as:

this.emptyValue = this.suffix.isEmpty() ? this.prefix : this.prefix + this.suffix;

Actually, since there is also a setEmptyValue, I think that the field should be left null, and toString and length check for null, resulting in even less objects allocated in that scenario.

Roel

On Mon, Jun 3, 2013 at 5:43 PM, <paul.sandoz at oracle.com> wrote:

Changeset: a79e2683eae3 Author: psandoz Date: 2013-06-03 17:37 +0200 URL: http://hg.openjdk.java.net/jdk8/tl/jdk/rev/a79e2683eae3

8014383: StringJoiner example in class description not in sync with streams API Reviewed-by: alanb ! src/share/classes/java/util/StringJoiner.java -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://mail.openjdk.org/pipermail/security-dev/attachments/20130604/1d893d7f/attachment.htm>



More information about the security-dev mailing list