Class Java.AnonymousClassDeclaration

All Implemented Interfaces:
Java.Annotatable, Java.ClassDeclaration, Java.Locatable, Java.Scope, Java.TypeDeclaration
Enclosing class:
Java

public static final class Java.AnonymousClassDeclaration extends Java.AbstractClassDeclaration
Representation of a JLS7 15.9.5 "anonymous class declaration".
  • Field Details

    • baseType

      public final Java.Type baseType
      Base class or interface.
  • Constructor Details

    • AnonymousClassDeclaration

      public AnonymousClassDeclaration(Location location, Java.Type baseType)
  • Method Details

    • accept

      @Nullable public <R, EX extends Throwable> R accept(Visitor.TypeDeclarationVisitor<R,EX> visitor) throws EX
      Description copied from interface: Java.TypeDeclaration
      Invokes the "visit...()" method of Visitor.TypeDeclarationVisitor for the concrete Java.TypeDeclaration type.
      Specified by:
      accept in interface Java.TypeDeclaration
      Throws:
      EX
    • getClassName

      public String getClassName()
      Description copied from interface: Java.TypeDeclaration
      Determines the effective class name, e.g. "pkg.Outer$Inner".
      Specified by:
      getClassName in interface Java.TypeDeclaration
    • toString

      public String toString()
      Specified by:
      toString in class Java.AbstractTypeDeclaration
    • defineSyntheticField

      void defineSyntheticField(IClass.IField iField) throws CompileException
      Inner classes have zero or more synthetic fields that hold references to their enclosing context:
      this$<em>n</em>
      (Mandatory for non-private non-static member classes; optional for private non-static member classes, local classes in non-static context, and anonymous classes in non-static context; forbidden for static member classes, local classes in static context, and anonymous classes in static context) Holds a reference to the immediately enclosing instance. <em>n</em> is N-1 for the Nth nesting level; e.g. the public non-static member class of a package member class has a synthetic field this$0.
      val$<em>local-variable-name</em>
      (Allowed for local classes and anonymous classes; forbidden for member classes) Hold copies of final local variables of the defining context.

      Notice that these fields are not included in the IClass.IField array returned by IClass.getDeclaredIFields2().

      If a synthetic field with the same name exists already, then it must have the same type and the redefinition is ignored.

      Parameters:
      iField -
      Throws:
      CompileException