Agreed. Alexey
________________________________ From: Rob Ross <[email protected]> To: [email protected] Sent: Wed, February 2, 2011 2:13:56 PM Subject: Re: [The Java Posse] {{}} (#338) I don't like this syntax. It disguises the fact that you have an instance initializer. I'm used to scanning for a pair of braces at the top level of a class to see if there is an instance initializer, but those braces were camouflaged by the outer braces. I prefer the second version, with the comment included! Rob On Feb 2, 2011, at 8:37 AM, Alexey Zinger wrote: > Real quick note on something that came up in the discussion in Alternative >Views in Software Development. Namely, the "double bracket" syntax. There >seemed to be some confusion about it. {{}} is not a new or separate language >construct. It's been there since the days of anonymous inner classes. >Despite >looking a little strange when written as follows, it's just normal Java. > > public Map<String, Integer> getAges() > { > return new HashMap<String, Integer>() > {{ > put("kitty", 7); > put("puppy", 2); > put("fishy", 3); > }} > } > > What it really is is an anonymous inner class that extends HashMap and has an >instance initializer block (as opposed to static initializer block). Let's >rewrite above in a clearer fashion: > > public Map<String, Integer> getAges() > { > return new HashMap<String, Integer>() > { > // static initializer > static > { > // doesn't make sense and may not be legal in an anonymous inner >class > } > > // instance initializer > { > put("kitty", 7); > put("puppy", 2); > put("fishy", 3); > } > } > } > > More reading on the subject: >http://download.oracle.com/javase/tutorial/java/javaOO/initial.html > > > Alexey > http://azinger.blogspot.com > http://bsheet.sourceforge.net > http://wcollage.sourceforge.net -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en. -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
