Re: Integer 128 != Integer 128 ??
On 10/12/2010 11:22 AM, Mike Schilling wrote:
"Eric Sosman" <esosman@ieee-dot-org.invalid> wrote in message
[... concerning the evils of auto-boxing ...]
But a few years ago, somebody thought it would be a convenience
if Java did this and a few related things automatically.
As well as doing other C#-like things, some of which are great (the
enhanced for-loop) and some not (auto-boxing).
Don't misunderstand me: I am not grumpily opposed to everything
that's been added to Java. The auto-boxing misfeature is the target
of my scorn, not the other stuff.
Hey, here's another example that floated through this newsgroup
not so long ago: Somebody had a multi-threaded thingummy, and he
wanted to maintain a thread-safe counter of something. So he wrote
(paraphrased from inexact memory):
class Whatever {
// ...
private static Integer count = 0;
static void incrementCount() {
synchronized(count) {
count++;
}
}
// ...
}
.... and then he found that it wasn't working properly. It's my
belief that auto-boxing was entirely responsible for this error:
without auto-boxing, the compiler would have prevented him from
making it in the first place. To put it another way, auto-boxing
silenced a compile-time error and replaced it with a hard-to-debug
run-time error; in my book that's not an improvement.
"Auto-boxing" means "I'm punching myself."
--
Eric Sosman
esosman@ieee-dot-org.invalid