10.2.11 Java Symbols

Java has a concept of anonymous classes which can look something like this:

 1:  @Test
 2:  public void watch(Observable o) {
 3:      @NonNull
 4:      Observer obs = new Observer() {
 5:          public void update(Observable o, Object arg) {
 6:              history.addElement(arg);
 7:          }
 8:      };
 9:      o.addObserver(obs);
 10: }

The brace following the new operator opens the anonymous class. Lines 5 and 8 are assigned the inexpr-class syntax, besides the inclass symbol used in normal classes. Thus, the class will be indented just like a normal class, with the added indentation given to inexpr-class. An inexpr-class syntactic element doesn’t have an anchor position.

Line 2 is assigned the annotation-top-cont syntax, due to it being a continuation of a topmost introduction with an annotation symbol preceding the current line. Similarly, line 4 is assigned the annotation-var-cont syntax due to it being a continuation of a variable declaration where preceding the declaration is an annotation.