Next: Statement Block Symbols, Previous: Objective-C Method Symbols, Up: Syntactic Symbols

#### 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.