Interface Java.InnerClassDeclaration
- All Superinterfaces:
Java.Annotatable, Java.ClassDeclaration, Java.Locatable, Java.Scope, Java.TypeDeclaration
- All Known Implementing Classes:
Java.AnonymousClassDeclaration, Java.LocalClassDeclaration, Java.MemberClassDeclaration, Java.MemberEnumDeclaration
- Enclosing class:
Java
Represents the declaration of an inner class, i.e. a class that exists in the context of zero or more "enclosing
instances". These are anonymous classes, local classes and member classes.
-
Method Summary
Modifier and TypeMethodDescriptionvoiddefineSyntheticField(IClass.IField iField) 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.Methods inherited from interface Java.Annotatable
getAnnotationsMethods inherited from interface Java.ClassDeclaration
getSyntheticFields, getVariableDeclaratorsAndInitializersMethods inherited from interface Java.Locatable
getLocation, throwCompileExceptionMethods inherited from interface Java.Scope
getEnclosingScopeMethods inherited from interface Java.TypeDeclaration
accept, createAnonymousClassName, createLocalTypeName, getClassName, getMemberTypeDeclaration, getMemberTypeDeclarations, getMethodDeclaration, getMethodDeclarations
-
Method Details
-
defineSyntheticField
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 fieldthis$0. val$<em>local-variable-name</em>-
(Allowed for local classes and anonymous classes; forbidden for member classes)
Hold copies of
finallocal variables of the defining context.
Notice that these fields are not included in the
IClass.IFieldarray returned byIClass.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
-