org.codehaus.janino
Class Java.AnonymousClassDeclaration
java.lang.Object
org.codehaus.janino.Java.AbstractTypeDeclaration
org.codehaus.janino.Java.ClassDeclaration
org.codehaus.janino.Java.AnonymousClassDeclaration
- All Implemented Interfaces:
- org.codehaus.janino.Java.InnerClassDeclaration, Java.Locatable, Java.Scope, Java.TypeDeclaration
- Enclosing class:
- Java
- public static final class Java.AnonymousClassDeclaration
- extends Java.ClassDeclaration
- implements org.codehaus.janino.Java.InnerClassDeclaration
Method Summary |
void |
accept(Visitor.TypeDeclarationVisitor visitor)
|
void |
defineSyntheticField(IClass.IField iField)
Inner classes have zero or more synthetic fields that hold references to their enclosing
context:
this$n
(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. |
java.lang.String |
getClassName()
Determine the effective class name, e.g. |
java.lang.String |
toString()
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
baseType
public final Java.Type baseType
Java.AnonymousClassDeclaration
public Java.AnonymousClassDeclaration(Location location,
Java.Type baseType)
accept
public final void accept(Visitor.TypeDeclarationVisitor visitor)
- Specified by:
accept
in interface Java.TypeDeclaration
getClassName
public java.lang.String getClassName()
- Description copied from interface:
Java.TypeDeclaration
- Determine the effective class name, e.g. "pkg.Outer$Inner".
- Specified by:
getClassName
in interface Java.TypeDeclaration
toString
public java.lang.String toString()
- Specified by:
toString
in class Java.AbstractTypeDeclaration
defineSyntheticField
public void defineSyntheticField(IClass.IField iField)
throws CompileException
- Inner classes have zero or more synthetic fields that hold references to their enclosing
context:
this$n
-
(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.
n
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$local-variable-name
-
(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.getDeclaredIFields()
.
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