public class StaticInitMerger extends ClassAdapter
ClassAdapter
that merges clinit methods into a single one.Modifier and Type | Field and Description |
---|---|
private MethodVisitor |
clinit |
private int |
counter |
private java.lang.String |
name |
private java.lang.String |
prefix |
cv
Constructor and Description |
---|
StaticInitMerger(java.lang.String prefix,
ClassVisitor cv) |
Modifier and Type | Method and Description |
---|---|
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.
|
void |
visitEnd()
Visits the end of the class.
|
MethodVisitor |
visitMethod(int access,
java.lang.String name,
java.lang.String desc,
java.lang.String signature,
java.lang.String[] exceptions)
Visits a method of the class.
|
visitAnnotation, visitAttribute, visitField, visitInnerClass, visitOuterClass, visitSource
private java.lang.String name
private MethodVisitor clinit
private java.lang.String prefix
private int counter
public StaticInitMerger(java.lang.String prefix, ClassVisitor cv)
public void visit(int version, int access, java.lang.String name, java.lang.String signature, java.lang.String superName, java.lang.String[] interfaces)
ClassVisitor
visit
in interface ClassVisitor
visit
in class ClassAdapter
version
- the class version.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
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
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
getInternalName
). May be
null.public MethodVisitor visitMethod(int access, java.lang.String name, java.lang.String desc, java.lang.String signature, java.lang.String[] exceptions)
ClassVisitor
MethodVisitor
instance (or null) each time it is
called, i.e., it should not return a previously returned visitor.visitMethod
in interface ClassVisitor
visitMethod
in class ClassAdapter
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.desc
- 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 getInternalName
). May be
null.public void visitEnd()
ClassVisitor
visitEnd
in interface ClassVisitor
visitEnd
in class ClassAdapter