public class StaticInitMerger extends ClassVisitor
ClassVisitor that merges <clinit> methods into a single one. All the existing
<clinit> methods are renamed, and a new one is created, which calls all the renamed
methods.api, cv| Modifier | Constructor and Description |
|---|---|
protected |
StaticInitMerger(int api,
String prefix,
ClassVisitor classVisitor)
Constructs a new
StaticInitMerger. |
|
StaticInitMerger(String prefix,
ClassVisitor classVisitor)
Constructs a new
StaticInitMerger. |
| Modifier and Type | Method and Description |
|---|---|
void |
visit(int version,
int access,
String name,
String signature,
String superName,
String[] interfaces)
Visits the header of the class.
|
void |
visitEnd()
Visits the end of the class.
|
MethodVisitor |
visitMethod(int access,
String name,
String descriptor,
String signature,
String[] exceptions)
Visits a method of the class.
|
visitAnnotation, visitAttribute, visitField, visitInnerClass, visitModule, visitNestHostExperimental, visitNestMemberExperimental, visitOuterClass, visitSource, visitTypeAnnotationpublic StaticInitMerger(String prefix, ClassVisitor classVisitor)
StaticInitMerger. Subclasses must not use this constructor.
Instead, they must use the StaticInitMerger(int, String, ClassVisitor) version.prefix - the prefix to use to rename the existing <clinit> methods.classVisitor - the class visitor to which this visitor must delegate method calls. May be
null.protected StaticInitMerger(int api,
String prefix,
ClassVisitor classVisitor)
StaticInitMerger.api - the ASM API version implemented by this visitor. Must be one of Opcodes.ASM4, Opcodes.ASM5 or Opcodes.ASM6.prefix - the prefix to use to rename the existing <clinit> methods.classVisitor - the class visitor to which this visitor must delegate method calls. May be
null.public void visit(int version,
int access,
String name,
String signature,
String superName,
String[] interfaces)
ClassVisitorvisit in class ClassVisitorversion - 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 MethodVisitor visitMethod(int access, String name, String descriptor, String signature, String[] exceptions)
ClassVisitorMethodVisitor
instance (or null) each time it is called, i.e., it should not return a previously
returned visitor.visitMethod in class ClassVisitoraccess - 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()
ClassVisitorvisitEnd in class ClassVisitorCopyright © 2018. All rights reserved.