Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #34292
| From | Eric Sosman <esosman@comcast-dot-net.invalid> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: hashtables syntax |
| Date | 2016-05-15 07:44 -0400 |
| Organization | A noiseless patient Spider |
| Message-ID | <nh9n7r$ira$1@dont-email.me> (permalink) |
| References | <nh954m$bu8$1@reader1.panix.com> |
On 5/15/2016 2:31 AM, Popping mad wrote:
>
> This whole syntax is new and strange to me, seemingly illogical
>
> private static HashMap<String, Type[]> functions; // built-in
> function types
>
> static { // initialize function types
> functions = new HashMap<>();
> functions.put("floor", new Type[]{Type.FLOAT, Type.INT});
> functions.put("sqrt", new Type[]{Type.FLOAT, Type.FLOAT});
> functions.put("log", new Type[]{Type.FLOAT, Type.FLOAT,
> Type.FLOAT});
> functions.put("random", new Type[]{Type.FLOAT});
> functions.put("parseInt", new Type[]{Type.STRING, Type.INT});
> functions.put("parseFloat", new Type[]{Type.STRING, Type.FLOAT});
> functions.put("readLine", new Type[]{Type.STRING});
> functions.put("showInt", new Type[]{Type.INT, Type.STRING});
> functions.put("showFloat", new Type[]{Type.FLOAT, Type.STRING});
> }
>
>
> If we are creating a private static Hashmap with template elements of a
> String and and array of Types, then why do I have to call
>
> functions = new HashMap<>();
You need to create the HashMap before you can start filling it.
You can't put the animals into the Ark before the Ark is built.
> and why nothing in the template. And what does static do in this case?
By "template" I guess you mean the <> angle braces? That's where
the type parameters would go, just as in the declaration. In fact, it
would be perfectly legal to repeat the parameters -- but since Java can
figure them out for itself ("Hmmm: They're probably the same types as
I already saw when `functions' was first declared!"), why bother?
As for `static', I'm not sure which of the two appearances confuses
you. The first `private static ... functions;' means that `functions'
belongs to the class as a whole, not to any instance of the class. If
`static' weren't there, each instance of the class would have its very
own `functions' map. The second appearance `static { // initialize ...'
means that this code belongs to the class as a whole and not to any
particular instance; it will execute when the class itself is being
set up -- and thus, will populate `functions' on behalf of the class.
--
esosman@comcast-dot-net.invalid
"Don't be afraid of work. Make work afraid of you." -- TLM
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
hashtables syntax Popping mad <rainbow@colition.gov> - 2016-05-15 06:31 +0000
Re: hashtables syntax Lew <lewbloch@gmail.com> - 2016-05-14 23:52 -0700
Re: hashtables syntax Popping mad <rainbow@colition.gov> - 2016-05-15 10:23 +0000
Re: hashtables syntax Lew <lewbloch@gmail.com> - 2016-05-15 09:33 -0700
Re: hashtables syntax Lew <lewbloch@gmail.com> - 2016-05-15 09:35 -0700
Re: hashtables syntax Eric Douglas <e.d.programmer@gmail.com> - 2016-05-16 06:10 -0700
Re: hashtables syntax Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-05-15 07:44 -0400
Re: hashtables syntax ruben safir <ruben@mrbrklyn.com> - 2016-05-16 01:26 -0400
Re: hashtables syntax Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-05-16 07:48 -0400
Re: hashtables syntax Steven Simpson <ss@my.domain.invalid> - 2016-05-16 15:51 +0100
Re: hashtables syntax Steven Simpson <ss@my.domain.invalid> - 2016-05-16 22:35 +0100
Re: hashtables syntax Lew <lewbloch@gmail.com> - 2016-05-16 16:10 -0700
Re: hashtables syntax Andreas Leitgeb <avl@logic.at> - 2016-05-15 13:43 +0000
Re: hashtables syntax Roedy Green <see_website@mindprod.com.invalid> - 2016-05-20 18:00 -0700
csiph-web