As per JLS 8.1.2
An inner class is a nested class that is not explicitly or implicitly declared static
I believe in above quote the phrase "An inner class" should be replaced with phrase "A non-static inner class".
There are four type of nested classes:
1. Top level nested classes or interfaces (always static)
2. Non static inner class (always non-static)
3. Local class (can be static or non-static)
4. Anonymous class (can be static or non-static)
The last three are collectively called "inner class". Because Local and Anonymous classes are deemed inner and they can be static, there following statement should be true:
"The inner classed can be static."
So I would say that Marcus answer is correct. If everyone reading this post agrees, then Sun will need to correct its JLS quoted above.
Thanks
Barkat