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.

Reply via email to