Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #29305
| From | Eric Sosman <esosman@comcast-dot-net.invalid> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Java blunders |
| Date | 2014-07-25 08:35 -0400 |
| Organization | A noiseless patient Spider |
| Message-ID | <lqtivg$pe5$1@dont-email.me> (permalink) |
| References | <jvbts91r2f9onj1e3dbr5lvqp70hmofkum@4ax.com> <a4b9a521-1f38-4fc0-b131-fda06e47af68@googlegroups.com> <lqp1it$s1g$1@dont-email.me> <lqsl6k$46e$1@speranza.aioe.org> |
On 7/25/2014 12:07 AM, thinbluernime wrote:
> On Wed, 23 Jul 2014 15:14:34 -0400, Eric Sosman wrote:
>[...]
>> IMHO Java would be a better language if `switch' were removed
>> altogether, fall-through or not. But that's just MHO, which (clearly)
>> is not widely shared. Meanwhile, I oppose anything that encourages the
>> use of the construct.
>
> If Java existed in a vacuum, so one could always use polymorphism instead
> of "switch", then maybe. But Java does not exist in a vacuum and at the
> edge it will often be necessary to take a finite set of numbers, strings,
> or something such as a png compression-type magic number, an enum-like
> field from a database, or similar and react to that. And that is a place
> where switch is useful and polymorphism isn't. Switch can even be used to
> turn "which value was received" to "which class to instantiate" so you
> can use polymorphism in the rest of the code.
> [...]
Sure. I use `switch' myself, now and then. But I find that I use
it less frequently in Java than in other languages, that there's simply
less need for it. (Also, I've more than once reconsidered a `switch'
I'd written, and jettisoned it in favor of something else.) Sure, the
construct is occasionally useful, but it's far from crucial. I don't
think it is fruitful to over-ornament the language to encourage the use
of a rarely-applicable construct.
By the way, have you taken a look at the byte code generated by
`switch' on String values? Ye flippin' gods! It compiles into *two*
`switch' statements, one sparse and one dense, sort of like
int _case_;
switch (string.hashCode()) {
case "A".hashCode():
if ("A".equals(string)) _case_ = 1; else _case_ = 0;
break;
case "B".hashCode():
if ("B".equals(string)) _case_ = 2; else _case_ = 0;
break;
...
default:
_case_ = 0;
break;
}
switch (_case_) {
case 1:
/* "A" stuff */
case 2:
/* "B" stuff */
...
case 0:
/* default stuff */
}
Something like this would be necessary if any of the cases' hashCode()s
collided *and* the cases ran different code *and* there was fall-through
involved, but absent even one of these the compiler ought to be able to
generate something less cumbersome. Even a smarter compiler, though,
would still have to compute hashCode() on the switch'ed String unless
it decided to abandon the `switch'-style strategy altogether.
--
esosman@comcast-dot-net.invalid
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-22 11:41 -0700
Re: Java blunders Daniele Futtorovic <da.futt.news@laposte.net> - 2014-07-22 21:12 +0200
Re: Java blunders Arne Vajhøj <arne@vajhoej.dk> - 2014-07-22 19:46 -0400
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 04:14 -0700
Re: Java blunders Joerg Meier <joergmmeier@arcor.de> - 2014-07-22 23:47 +0200
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 04:23 -0700
Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-23 12:32 +0000
Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-23 08:55 -0400
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 06:21 -0700
Re: Java blunders Arne Vajhøj <arne@vajhoej.dk> - 2014-07-23 19:53 -0400
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 18:49 -0700
Re: Java blunders Arne Vajhøj <arne@vajhoej.dk> - 2014-07-23 19:52 -0400
Re: Java blunders Arne Vajhøj <arne@vajhoej.dk> - 2014-07-22 19:44 -0400
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 04:27 -0700
Re: Java blunders Arne Vajhøj <arne@vajhoej.dk> - 2014-07-23 19:55 -0400
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 18:53 -0700
Re: Java blunders Joerg Meier <joergmmeier@arcor.de> - 2014-07-24 11:24 +0200
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-25 06:34 -0700
Re: Java blunders Arne Vajhøj <arne@vajhoej.dk> - 2014-07-24 19:31 -0400
Re: Java blunders Gene Wirchenko <genew@telus.net> - 2014-07-25 13:22 -0700
Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-25 17:17 -0400
Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-25 23:12 +0000
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-26 09:06 -0700
Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-26 20:11 +0000
Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-26 17:27 -0400
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-27 10:49 -0700
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-27 10:10 -0700
Re: Java blunders Gene Wirchenko <genew@telus.net> - 2014-07-28 13:53 -0700
Re: Java blunders Stuart <DerTopper@web.de> - 2014-07-30 08:05 +0200
Re: Java blunders Sebastian <news@seyweiler.dyndns.org> - 2014-07-30 11:12 +0200
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-27 10:13 -0700
Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-27 18:28 +0000
Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-27 14:46 -0400
Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-27 21:18 +0000
Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-27 18:10 -0400
Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-28 01:25 +0000
Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-28 08:02 -0400
Re: Java blunders Mike Amling <mamling@chaff.us> - 2014-07-31 13:26 -0500
Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-31 14:48 -0400
Re: Java blunders "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2014-07-28 13:22 +0100
Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-28 12:52 +0000
Re: Java blunders Joerg Meier <joergmmeier@arcor.de> - 2014-07-28 23:38 +0200
Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-28 23:17 +0000
Re: Java blunders Silvio <silvio@internet.com> - 2014-07-29 13:34 +0200
Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-29 12:45 +0000
Re: Java blunders Silvio <silvio@internet.com> - 2014-07-29 17:10 +0200
Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-29 16:29 +0000
Re: Java blunders lipska the kat <lipskathekat@example.com> - 2014-07-29 20:15 +0100
Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-29 22:02 +0000
Re: Java blunders Silvio <silvio@internet.com> - 2014-07-29 22:43 +0200
Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-29 22:10 +0000
Re: Java blunders Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2014-07-27 19:18 -0500
Re: Java blunders Gene Wirchenko <genew@telus.net> - 2014-07-28 13:54 -0700
Re: Java blunders Arne Vajhøj <arne@vajhoej.dk> - 2014-07-31 23:07 -0400
Re: Java blunders James Hostick <james.hostick@gmail.com> - 2014-08-01 22:10 -0700
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-26 08:31 -0700
Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-26 21:04 +0000
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-27 10:51 -0700
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-28 08:50 -0700
Re: Java blunders Joerg Meier <joergmmeier@arcor.de> - 2014-07-28 23:42 +0200
Re: Java blunders Arne Vajhøj <arne@vajhoej.dk> - 2014-07-31 23:04 -0400
Re: Java blunders Josip Almasi <joe@vrspace.org> - 2014-07-28 22:23 +0200
Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-28 16:39 -0400
Re: Java blunders Josip Almasi <joe@vrspace.org> - 2014-07-29 00:11 +0200
Re: Java blunders Jukka Lahtinen <jtfjdehf@hotmail.com.invalid> - 2014-07-30 12:07 +0300
Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-30 08:05 -0400
Re: Java blunders Wanja Gayk <brixomatic@yahoo.com> - 2014-07-25 01:34 +0200
Re: Java blunders Arne Vajhøj <arne@vajhoej.dk> - 2014-07-24 19:43 -0400
Re: Java blunders Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2014-07-22 21:02 -0500
Re: Java blunders Leif Roar Moldskred <leifm@huldreskog.lan> - 2014-07-23 02:01 -0500
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 18:58 -0700
Re: Java blunders thinbluernime <thinbluernime3@gmail.com> - 2014-07-25 03:55 +0000
Re: Java blunders Leif Roar Moldskred <leifm@huldreskog.lan> - 2014-07-25 00:32 -0500
Re: Java blunders thinbluernime <thinbluernime3@gmail.com> - 2014-07-26 07:28 +0000
Re: Java blunders "Gavino" <invalid@invalid.invalid> - 2014-07-26 19:43 +0200
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-25 06:36 -0700
Re: Java blunders "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2014-07-25 15:47 +0100
Re: Java blunders David Postill <david.postill@gmail.com> - 2014-07-25 18:29 +0200
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-26 09:27 -0700
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-25 06:37 -0700
Re: Java blunders Joerg Meier <joergmmeier@arcor.de> - 2014-07-23 13:17 +0200
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 06:27 -0700
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 04:44 -0700
Re: Java blunders Silvio <silvio@internet.com> - 2014-07-23 16:23 +0200
Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-23 12:02 -0400
Re: Java blunders Silvio <silvio@internet.com> - 2014-07-24 11:37 +0200
Re: Java blunders Josip Almasi <joe@vrspace.org> - 2014-07-28 22:37 +0200
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 09:33 -0700
Re: Java blunders thinbluernime <thinbluernime3@gmail.com> - 2014-07-25 03:57 +0000
Re: Java blunders Arne Vajhøj <arne@vajhoej.dk> - 2014-07-23 21:38 -0400
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 18:59 -0700
Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-24 07:33 +0000
Re: Java blunders Silvio <silvio@internet.com> - 2014-07-24 11:47 +0200
Re: Java blunders Arne Vajhøj <arne@vajhoej.dk> - 2014-07-24 19:34 -0400
Re: Java blunders Silvio <silvio@internet.com> - 2014-07-25 08:48 +0200
Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-25 08:07 -0400
Re: Java blunders "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2014-07-25 13:54 +0100
Re: Java blunders Arne Vajhøj <arne@vajhoej.dk> - 2014-07-31 22:53 -0400
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-25 07:04 -0700
Re: Java blunders Josip Almasi <joe@vrspace.org> - 2014-07-28 22:01 +0200
Re: Java blunders Josip Almasi <joe@vrspace.org> - 2014-07-28 21:56 +0200
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 06:28 -0700
Re: Java blunders Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2014-07-23 08:33 -0500
Re: Java blunders Arne Vajhøj <arne@vajhoej.dk> - 2014-07-23 21:34 -0400
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 19:06 -0700
Re: Java blunders Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2014-07-23 22:11 -0500
Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-24 07:36 +0000
Re: Java blunders Arne Vajhøj <arne@vajhoej.dk> - 2014-07-24 19:39 -0400
Re: Java blunders "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2014-07-25 13:40 +0100
Re: Java blunders Arne Vajhøj <arne@vajhoej.dk> - 2014-07-24 19:38 -0400
Re: Java blunders Gene Wirchenko <genew@telus.net> - 2014-07-25 13:30 -0700
Re: Java blunders taqmcg@gmail.com - 2014-07-23 11:26 -0700
Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-23 15:14 -0400
Re: Java blunders thinbluernime <thinbluernime3@gmail.com> - 2014-07-25 04:07 +0000
Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-25 08:35 -0400
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-26 09:41 -0700
Re: Java blunders Wanja Gayk <brixomatic@yahoo.com> - 2014-08-03 16:41 +0200
Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-08-03 11:31 -0400
Re: Java blunders Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2014-07-23 22:41 -0500
Re: Java blunders taqmcg@gmail.com - 2014-07-24 10:09 -0700
Re: Java blunders "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2014-07-25 13:22 +0100
Re: Java blunders Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2014-07-25 20:34 -0500
Re: Java blunders "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2014-07-28 13:33 +0100
Re: Java blunders Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2014-07-28 08:35 -0500
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-26 09:44 -0700
Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-26 23:36 +0000
Re: Java blunders Gene Wirchenko <genew@telus.net> - 2014-07-23 20:48 -0700
Re: Java blunders Silvio <silvio@internet.com> - 2014-07-24 11:56 +0200
Re: Java blunders Silvio <silvio@internet.com> - 2014-07-24 16:07 +0200
Re: Java blunders Gene Wirchenko <genew@telus.net> - 2014-07-25 13:38 -0700
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-26 10:02 -0700
Re: Java blunders Arne Vajhøj <arne@vajhoej.dk> - 2014-07-24 19:29 -0400
Re: Java blunders Gene Wirchenko <genew@telus.net> - 2014-07-25 13:45 -0700
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-26 10:53 -0700
Re: Java blunders Wanja Gayk <brixomatic@yahoo.com> - 2014-07-25 01:28 +0200
Re: Java blunders "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2014-07-25 14:16 +0100
Re: Java blunders Joerg Meier <joergmmeier@arcor.de> - 2014-07-25 17:39 +0200
Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-26 16:21 -0700
Re: Java blunders Josip Almasi <joe@vrspace.org> - 2014-07-28 23:59 +0200
Re: Java blunders Josip Almasi <joe@vrspace.org> - 2014-07-29 00:41 +0200
Re: Java blunders Josip Almasi <joe@vrspace.org> - 2014-07-29 01:54 +0200
Re: Java blunders Arne Vajhøj <arne@vajhoej.dk> - 2014-07-31 22:38 -0400
Re: Java blunders Arne Vajhøj <arne@vajhoej.dk> - 2014-07-31 22:39 -0400
Re: Java blunders w.tom.adams@gmail.com - 2014-07-30 07:57 -0700
Re: Java blunders Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2014-07-30 10:22 -0500
csiph-web