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.