Integer.parseInt
Rémi Forax
forax at univ-mlv.fr
Wed Apr 11 14:45:47 UTC 2012
On 04/11/2012 04:18 PM, Benedict Elliott Smith wrote:
> Hi,
>
> Looking at the source code, it doesn't appear as though there is any reason
> to require the input be a String - only length() and charAt() are called,
> which are both declared by CharSequence. Is there a reason I can't fathom,
> or was it an oversight? It would be nice to widen the type for this (and
> potentially other equivalent methods).
Integer.parseInt (1.0 or 1.1) pre-date CharSequence (1.4),
that's why it use a String an not a CharSequence.
If you don't want to break all already compiled programs,
you can't just replace String by CharSequence because the exact
signature of the method
(with the parameter types) is encoded in the bytecode.
Joe Darcy write a cool blog post on that [1].
The best here is to add new methods that takes a CharSequence, move the
code that use
a String in them and change the method that takes a String to delegate
to the one that use
a CharSequence.
cheers,
Rémi
[1] https://blogs.oracle.com/darcy/entry/kinds_of_compatibility
More information about the core-libs-dev
mailing list