public abstract class ClassVisitor
extends java.lang.Object
visit [ visitSource ] [
visitModule ][ visitNestHost ][ visitOuterClass ] ( visitAnnotation | visitTypeAnnotation |
visitAttribute )* ( visitNestMember | visitInnerClass |
visitField | visitMethod )* visitEnd.| 限定符和类型 | 字段和说明 |
|---|---|
protected int |
api
The ASM API version implemented by this visitor.
|
protected ClassVisitor |
cv
The class visitor to which this visitor must delegate method calls.
|
| 构造器和说明 |
|---|
ClassVisitor(int api)
Constructs a new
ClassVisitor. |
ClassVisitor(int api,
ClassVisitor classVisitor)
Constructs a new
ClassVisitor. |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
visit(int version,
int access,
java.lang.String name,
java.lang.String signature,
java.lang.String superName,
java.lang.String[] interfaces)
Visits the header of the class.
|
AnnotationVisitor |
visitAnnotation(java.lang.String descriptor,
boolean visible)
Visits an annotation of the class.
|
void |
visitAttribute(Attribute attribute)
Visits a non standard attribute of the class.
|
void |
visitEnd()
Visits the end of the class.
|
FieldVisitor |
visitField(int access,
java.lang.String name,
java.lang.String descriptor,
java.lang.String signature,
java.lang.Object value)
Visits a field of the class.
|
void |
visitInnerClass(java.lang.String name,
java.lang.String outerName,
java.lang.String innerName,
int access)
Visits information about an inner class.
|
MethodVisitor |
visitMethod(int access,
java.lang.String name,
java.lang.String descriptor,
java.lang.String signature,
java.lang.String[] exceptions)
Visits a method of the class.
|
ModuleVisitor |
visitModule(java.lang.String name,
int access,
java.lang.String version)
Visit the module corresponding to the class.
|
void |
visitNestHost(java.lang.String nestHost)
Visits the nest host class of the class.
|
void |
visitNestMember(java.lang.String nestMember)
Visits a member of the nest.
|
void |
visitOuterClass(java.lang.String owner,
java.lang.String name,
java.lang.String descriptor)
Visits the enclosing class of the class.
|
void |
visitSource(java.lang.String source,
java.lang.String debug)
Visits the source of the class.
|
AnnotationVisitor |
visitTypeAnnotation(int typeRef,
TypePath typePath,
java.lang.String descriptor,
boolean visible)
Visits an annotation on a type in the class signature.
|
protected final int api
Opcodes.ASM4, Opcodes.ASM5, Opcodes.ASM6 or
Opcodes.ASM7.protected ClassVisitor cv
public ClassVisitor(int api)
ClassVisitor.api - the ASM API version implemented by this visitor. Must be one of
Opcodes.ASM4, Opcodes.ASM5, Opcodes.ASM6
or Opcodes.ASM7.public ClassVisitor(int api,
ClassVisitor classVisitor)
ClassVisitor.api - the ASM API version implemented by this visitor. Must be one of
Opcodes.ASM4, Opcodes.ASM5, Opcodes.ASM6
or Opcodes.ASM7.classVisitor - the class visitor to which this visitor must delegate method
calls. May be null.public void visit(int version,
int access,
java.lang.String name,
java.lang.String signature,
java.lang.String superName,
java.lang.String[] interfaces)
version - the class version. The minor version is stored in the 16 most
significant bits, and the major version in the 16 least
significant bits.access - the class's access flags (see Opcodes). This parameter
also indicates if the class is deprecated.name - the internal name of the class (see
Type.getInternalName()).signature - the signature of this class. May be null if the class
is not a generic one, and does not extend or implement generic
classes or interfaces.superName - the internal of name of the super class (see
Type.getInternalName()). For interfaces, the super class
is Object. May be null, but only for the
Object class.interfaces - the internal names of the class's interfaces (see
Type.getInternalName()). May be null.public void visitSource(java.lang.String source,
java.lang.String debug)
source - the name of the source file from which the class was compiled. May
be null.debug - additional debug information to compute the correspondence between
source and compiled elements of the class. May be null.public ModuleVisitor visitModule(java.lang.String name, int access, java.lang.String version)
name - the fully qualified name (using dots) of the module.access - the module access flags, among ACC_OPEN,
ACC_SYNTHETIC and ACC_MANDATED.version - the module version, or null.public void visitNestHost(java.lang.String nestHost)
nestHost - the internal name of the host class of the nest.public void visitOuterClass(java.lang.String owner,
java.lang.String name,
java.lang.String descriptor)
owner - internal name of the enclosing class of the class.name - the name of the method that contains the class, or null
if the class is not enclosed in a method of its enclosing class.descriptor - the descriptor of the method that contains the class, or
null if the class is not enclosed in a method of its
enclosing class.public AnnotationVisitor visitAnnotation(java.lang.String descriptor, boolean visible)
descriptor - the class descriptor of the annotation class.visible - true if the annotation is visible at runtime.public AnnotationVisitor visitTypeAnnotation(int typeRef, TypePath typePath, java.lang.String descriptor, boolean visible)
typeRef - a reference to the annotated type. The sort of this type reference
must be TypeReference.CLASS_TYPE_PARAMETER,
TypeReference.CLASS_TYPE_PARAMETER_BOUND or
TypeReference.CLASS_EXTENDS. See TypeReference.typePath - the path to the annotated type argument, wildcard bound, array
element type, or static inner type within 'typeRef'. May be
null if the annotation targets 'typeRef' as a whole.descriptor - the class descriptor of the annotation class.visible - true if the annotation is visible at runtime.public void visitAttribute(Attribute attribute)
attribute - an attribute.public void visitNestMember(java.lang.String nestMember)
nestMember - the internal name of a nest member.public void visitInnerClass(java.lang.String name,
java.lang.String outerName,
java.lang.String innerName,
int access)
name - the internal name of an inner class (see
Type.getInternalName()).outerName - the internal name of the class to which the inner class belongs
(see Type.getInternalName()). May be null for
not member classes.innerName - the (simple) name of the inner class inside its enclosing class.
May be null for anonymous inner classes.access - the access flags of the inner class as originally declared in the
enclosing class.public FieldVisitor visitField(int access, java.lang.String name, java.lang.String descriptor, java.lang.String signature, java.lang.Object value)
access - the field's access flags (see Opcodes). This parameter
also indicates if the field is synthetic and/or deprecated.name - the field's name.descriptor - the field's descriptor (see Type).signature - the field's signature. May be null if the field's type
does not use generic types.value - the field's initial value. This parameter, which may be
null if the field does not have an initial value, must
be an Integer, a Float, a Long, a
Double or a String (for int,
float, long or String fields
respectively). This parameter is only used for static
fields. Its value is ignored for non static fields, which must
be initialized through bytecode instructions in constructors or
methods.public MethodVisitor visitMethod(int access, java.lang.String name, java.lang.String descriptor, java.lang.String signature, java.lang.String[] exceptions)
MethodVisitor instance (or null) each time it is called,
i.e., it should not return a previously returned visitor.access - the method's access flags (see Opcodes). This parameter
also indicates if the method is synthetic and/or deprecated.name - the method's name.descriptor - the method's descriptor (see Type).signature - the method's signature. May be null if the method
parameters, return type and exceptions do not use generic types.exceptions - the internal names of the method's exception classes (see
Type.getInternalName()). May be null.public void visitEnd()
Copyright © 2019 TODAY. All rights reserved.