RFR: 8028757: CharSequence.subSequence improperly requires a "new" CharSequence be returned
mike.duigou at oracle.com
Tue Dec 3 19:01:50 UTC 2013
The changes look OK.
The needs of mutable CharSequences to isolate the subsequence changes seems adequately handled in the mutable classes.
On Dec 3 2013, at 10:15 , Stuart Marks <stuart.marks at oracle.com> wrote:
> Hi all,
> Please review this small change to the subSequence() method specs of CharSequence and String. Essentially this removes the requirement of returning a "new" character sequence at each call. This brings the spec in line with String's implementation, which will return 'this' in appropriate circumstances.
> No change is necessary for the other CharSequence implementations. StringBuilder/Buffer still say "new" and in fact they always return new String objects. CharBuffer defines its exact sharing behavior. Segment returns a "new" Segment with a shared character array, which is (supposedly) immutable.
> Diffs appended below.
> # HG changeset patch
> # User smarks
> # Date 1386094056 28800
> # Node ID c15e257074e48a1927755ff48393baa8f3f3ab0e
> # Parent 4d9078b1f25b72071d91acc7e1ce5bb7e91748fb
> 8028757: CharSequence.subSequence improperly requires a "new" CharSequence be returned
> Reviewed-by: XXX
> diff -r 4d9078b1f25b -r c15e257074e4 src/share/classes/java/lang/CharSequence.java
> --- a/src/share/classes/java/lang/CharSequence.java Tue Nov 26 14:49:55 2013 +0900
> +++ b/src/share/classes/java/lang/CharSequence.java Tue Dec 03 10:07:36 2013 -0800
> @@ -87,7 +87,7 @@
> char charAt(int index);
> - * Returns a new <code>CharSequence</code> that is a subsequence of this sequence.
> + * Returns a <code>CharSequence</code> that is a subsequence of this sequence.
> * The subsequence starts with the <code>char</code> value at the specified index and
> * ends with the <code>char</code> value at index <tt>end - 1</tt>. The length
> * (in <code>char</code>s) of the
> diff -r 4d9078b1f25b -r c15e257074e4 src/share/classes/java/lang/String.java
> --- a/src/share/classes/java/lang/String.java Tue Nov 26 14:49:55 2013 +0900
> +++ b/src/share/classes/java/lang/String.java Tue Dec 03 10:07:36 2013 -0800
> @@ -1958,7 +1958,7 @@
> - * Returns a new character sequence that is a subsequence of this sequence.
> + * Returns a character sequence that is a subsequence of this sequence.
> * <p> An invocation of this method of the form
More information about the core-libs-dev