Constants for standard charsets -- CR #4884238
Ulf Zibis
Ulf.Zibis at gmx.de
Tue Apr 12 19:10:18 UTC 2011
Am 12.04.2011 20:27, schrieb Mike Duigou:
> On Apr 12 2011, at 11:11 , mark.reinhold at oracle.com wrote:
>
>> 2011/4/12 10:38 -0700, mike.duigou at oracle.com:
>>> On Apr 12 2011, at 03:33 , Alan Bateman wrote:
>>>> ...
>>>>
>>>> 2. @see Charsets.DEFAULT, I assume this should be @see Charsets#DEFAULT_CHARSET
>>> Correct. I changed it to DEFAULT_CHARSET and forgot to fix this link.
>> Why is forcing people to type Charsets.DEFAULT_CHARSET better than
>> Charsets.DEFAULT?
>>
>> If DEFAULT_CHARSET needs the _CHARSET suffix then don't the other
>> constants need that too? Why is DEFAULT special?
> The addition of _CHARSET is to encourage static import of Charsets. Unadorned DEFAULT has too much chance of collision. The other defined names shouldn't collide.
For me, Charsets.DEFAULT should be enough:
1.) Looks better.
2.) Usage of those constants should be rare, so static import should be rare too. So prevent
developpers from typing more than neccessary.
3.) We stay in current tradition. Remember Integer.MAX_VALUE, Long.MAX_VALUE etc...
... but anyway, we drop it.
BTW: I too miss the original post of this thread in my emails. Problem with the mail server ?
> This change has been previously proposed but the constants were to be defined in Charset which
was deemed to have too high a static initialization cost. Using a separate class, Charsets, means
that the cost for initialization is only borne by those who use the class--there's virtually no
incremental cost to platform initialization.
I can't agree with that, because you statically invoke e.g. Charset.forName("US-ASCII"), which
causes the expensive initialization of the Charset class.
Please note my long waiting patches:
***Bug 100091* <https://bugs.openjdk.java.net/show_bug.cgi?id=100091> - No system start for
file.encoding=x-SJIS_0213
*****Bug 100092* <https://bugs.openjdk.java.net/show_bug.cgi?id=100092> - Speed-up FastCharsetProvider
*****Bug 100095* <https://bugs.openjdk.java.net/show_bug.cgi?id=100095> - Avoid 2-step lookup in
sun.nio.cs charset providers
*****Bug 100098* <https://bugs.openjdk.java.net/show_bug.cgi?id=100098> - Make sun.nio.cs.* charset
objects light-weight
**
-Ulf
More information about the core-libs-dev
mailing list