Gary Gregory wrote:
> When I replaced the current implementation of StringUtils.left(String,int)
> with:
>
> @SuppressWarnings("unchecked")
> public static <T extends CharSequence> T left(T cs, int len) {
> if (cs == null) {
> return null;
> }
> if (len < 0) {
> return (T) cs.subSequence(0, 0);
> }
> if (cs.length() <= len) {
> return cs;
> }
> return (T) cs.subSequence(0, len);
> }
>
> Everything compiled, all tests passed, and no Unnecessary cast warnings
> came up (as provided by Eclipse 3.6M5)
>
> The problem is what happens when you pass in a non-Strings, like a
> StringBuilder. The implementation of subsequence for StringBuilder returns
> a new String, not new StringBuilder.
Then why not use already proposed:
public static String left(CharSequence str, int len) {
if (str == null) {
return null;
}
return str.subSequence(0, len).toString();
}
??
- Jörg
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]