- Classes have a name starting with an uppercase character, should contain a noun
- Methods start with a lowercase character and should contain a verb
- Packages are all lowercase
- Members start lowercase, or all uppercase if static
- Members are private in all cases, unless static
- Members initialized in constructor are final.
- Static members should be final, can be public in that case
Inner classes can divert from those rules, but should never be exported to outside the containing compilation unit. Declare all inner classes as package-private, i.e. no visibility modifier. If declared private, Java needs to generate synthetic accessor methods.
Debugging annotations in Eclipse
To find out what's wrong with a text annotation (it's created, but nothing can be seen in the text viewer), set a break point on
getDecoration(Annotation annotation, Decoration decoration). It can be found around line 826 in 3.6.2.