On 31 August 2011 06:45, Henri Yandell <[email protected]> wrote:
> On Tue, Aug 30, 2011 at 1:59 PM, sebb <[email protected]> wrote:
>> On 30 August 2011 19:08,  <[email protected]> wrote:
>>> Hi All,
>>>
>>> i found a Bug in lang3. This tests are failed:
>>>
>>> Assert.assertTrue(org.apache.commons.lang3.StringUtils.equals(new 
>>> StringBuffer(""), new StringBuffer("")));
>>> Assert.assertTrue(org.apache.commons.lang3.StringUtils.equals(new 
>>> StringBuffer("123"), new StringBuffer("123")));
>>
>> The CharSequence interface does not define equals(), so only concrete
>> implementations that provide one (such as String) will use anything
>> other than Object.equals().
>>
>> I don't think this is a bug though perhaps the Javadoc could be clearer.
>
> I think a warning in StringUtils.equals that StringBuffer and
> StringBuilder don't implement equals as you'd expect and to call
> toString before calling such would be valuable.
>
> I think it's weird that the JDK doesn't do a real equals, but I don't
> think it's something we should try to fix.

It's a bit odd that StringUtils.equals() accepts CharSequence, but the
code is really only useful for String objects.
Perhaps it was a mistake to change the parameter type...

After all, the class is called StringUtils.

Would it be useful to add a CharSequenceUtils method to compare
CharSequence objects?
Could have equals() and equalsIgnoreCase().
Those would call toString() first.

> Hen
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to