public final class ClassDef extends java.lang.Object implements java.lang.Cloneable, IAccessFlags, IClassFormatOutput
ClassDefParser
produces from bytecode. Most elements are either settable or extendible.
This class also implements IClassFormatOutput
and works with ClassWriter to produce
bytecode without an external compiler.MT-safety: this class and all interfaces used by it are not safe for access from multiple concurrent threads.
ACC_ABSTRACT, ACC_BRIDGE, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, ALL_ACC, ALL_ACC_NAMES| 构造器和说明 |
|---|
ClassDef() |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
accept(IClassDefVisitor visitor,
java.lang.Object ctx) |
int |
addClassref(java.lang.String classJVMName) |
int |
addCONSTANT_Utf8(java.lang.String value,
boolean keepUnique) |
int |
addField(java.lang.String name,
java.lang.String descriptor,
int access_flags)
Adds a new declared field to this class [with no attributes]
|
int |
addField(java.lang.String name,
java.lang.String descriptor,
int access_flags,
IAttributeCollection attributes)
Adds a new declared field to this class [with given attributes]
|
int |
addFieldref(Field_info field)
Adds a reference to a field declared by this class.
|
int |
addFieldref(int offset)
Adds a reference to a field declared by this class.
|
int |
addMethod(Method_info method) |
int |
addNameType(java.lang.String name,
java.lang.String typeDescriptor) |
int |
addStringConstant(java.lang.String value) |
java.lang.Object |
clone()
Performs a deep copy.
|
long |
computeSUID(boolean skipCLINIT)
This follows the spec at http://java.sun.com/j2se/1.4.1/docs/guide/serialization/spec/class.doc6.html#4100
as well as undocumented hacks used by Sun's 1.4.2 J2SDK
|
int |
getAccessFlags() |
IAttributeCollection |
getAttributes() |
IConstantCollection |
getConstants() |
long |
getDeclaredSUID() |
IFieldCollection |
getFields() |
int[] |
getFields(java.lang.String name) |
IInterfaceCollection |
getInterfaces() |
long |
getMagic() |
IMethodCollection |
getMethods() |
int[] |
getMethods(java.lang.String name) |
java.lang.String |
getName() |
CONSTANT_Class_info |
getSuperClass() |
int |
getSuperClassIndex() |
CONSTANT_Class_info |
getThisClass() |
int |
getThisClassIndex() |
int[] |
getVersion() |
boolean |
isInterface() |
boolean |
isNested(int[] nestedAccessFlags) |
boolean |
isSynthetic() |
Method_info |
newEmptyMethod(java.lang.String name,
java.lang.String descriptor,
int access_flags) |
void |
setAccessFlags(int flags) |
void |
setDeclaredSUID(long suid) |
void |
setMagic(long magic) |
void |
setSuperClassIndex(int super_class_index) |
void |
setThisClassIndex(int this_class_index) |
void |
setVersion(int[] version) |
void |
writeInClassFormat(UDataOutputStream out) |
public void accept(IClassDefVisitor visitor, java.lang.Object ctx)
public long getMagic()
public void setMagic(long magic)
public int[] getVersion()
public void setVersion(int[] version)
public final void setDeclaredSUID(long suid)
public int getThisClassIndex()
public void setThisClassIndex(int this_class_index)
public CONSTANT_Class_info getThisClass()
public CONSTANT_Class_info getSuperClass()
public java.lang.String getName()
public int getSuperClassIndex()
public void setSuperClassIndex(int super_class_index)
public final int getAccessFlags()
getAccessFlags 在接口中 IAccessFlagspublic final void setAccessFlags(int flags)
setAccessFlags 在接口中 IAccessFlagspublic boolean isInterface()
public boolean isSynthetic()
public boolean isNested(int[] nestedAccessFlags)
public IConstantCollection getConstants()
public IInterfaceCollection getInterfaces()
public IFieldCollection getFields()
public IMethodCollection getMethods()
public IAttributeCollection getAttributes()
public int[] getFields(java.lang.String name)
public int[] getMethods(java.lang.String name)
public java.lang.Object clone()
clone 在类中 java.lang.Objectpublic void writeInClassFormat(UDataOutputStream out) throws java.io.IOException
writeInClassFormat 在接口中 IClassFormatOutputjava.io.IOExceptionpublic final long getDeclaredSUID()
public final long computeSUID(boolean skipCLINIT)
public int addCONSTANT_Utf8(java.lang.String value,
boolean keepUnique)
public int addStringConstant(java.lang.String value)
public int addNameType(java.lang.String name,
java.lang.String typeDescriptor)
public int addClassref(java.lang.String classJVMName)
public int addField(java.lang.String name,
java.lang.String descriptor,
int access_flags)
public int addField(java.lang.String name,
java.lang.String descriptor,
int access_flags,
IAttributeCollection attributes)
public Method_info newEmptyMethod(java.lang.String name, java.lang.String descriptor, int access_flags)
public int addMethod(Method_info method)
public int addFieldref(Field_info field)
public int addFieldref(int offset)
Copyright © 2018. All Rights Reserved.