It is more about custom implementations of CharSuqence that may be backed by some exotic matter and calling toString on them to create actual String goes against purpose of CharSequence in the first place (esp. when passing it to a method that accepts CharSequence). For JDK user it is easy to avoid calling contains and roll his/her own implementation but it would be nice if we can avoid such surprises.
On Fri, Mar 20, 2015 at 1:31 PM, Aleksey Shipilev < aleksey.shipi...@oracle.com> wrote: > On 03/20/2015 03:28 PM, Aleksey Shipilev wrote: > > I wonder if the change is "only" about specializing > > indexOf(CharSequence) on the Java side to shortcut to indexOf(String) > > and others, like String.contentEquals(CharSequence) already does. > > Ah, sorry for the confusion, contains(CharSequence) already > "specializes" via shortcut in > > String toString() { > return this; > } > > public boolean contains(CharSequence s) { > return indexOf(s.toString()) > -1; > } > > So the question is about StringBuffers/StringBuilders then? > > -Aleksey. > > -- Tomasz Kowalczewski