Class FieldOrMethod
java.lang.Object
org.apache.bcel.generic.Instruction
org.apache.bcel.generic.CPInstruction
org.apache.bcel.generic.FieldOrMethod
- All Implemented Interfaces:
Cloneable, IndexedInstruction, LoadClass, TypedInstruction
- Direct Known Subclasses:
FieldInstruction, InvokeInstruction
Superclass for InvokeInstruction and FieldInstruction, since they have some methods in common!
-
Field Summary
Fields inherited from class CPInstruction
indexModifier and TypeFieldDescriptionprotected intDeprecated.(since 6.0) will be made private; do not access directly, use getter/setterFields inherited from class Instruction
length, opcode -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedFieldOrMethod(short opcode, int index) Constructs a FieldOrMethod. -
Method Summary
Modifier and TypeMethodDescriptionDeprecated.If the instruction references an array class, this method will return "java.lang.Object".Deprecated.If the instruction references an array class, the ObjectType returned will be invalid.Gets the ObjectType of the method return or field.getName(ConstantPoolGen cpg) Gets the name of referenced method or field.Gets the reference type representing the class, interface, or array class referenced by the instruction.Gets the signature of referenced method or field.Methods inherited from class CPInstruction
dump, getIndex, getType, initFromFile, setIndex, toString, toStringModifier and TypeMethodDescriptionvoiddump(DataOutputStream out) Dumps instruction as byte code to stream out.final intgetIndex()Gets the constant pool index referred to by this instruction.getType(ConstantPoolGen cpg) Gets the type associated with this instruction.protected voidinitFromFile(ByteSequence bytes, boolean wide) Reads needed data (that is, index) from file.voidsetIndex(int index) Sets the index to constant pool.toString(boolean verbose) Long output format: <name of opcode> "["<opcode number>"]" "("<length of instruction>")" "<"< constant pool index>">"toString(ConstantPool cp) Gets the mnemonic for instruction with symbolic references resolved.Methods inherited from class Instruction
accept, consumeStack, copy, equals, getComparator, getLength, getName, getOpcode, hashCode, isValidByte, isValidShort, produceStack, readInstruction, setComparator, toStringModifier and TypeMethodDescriptionabstract voidCall corresponding visitor method(s).intThis method also gives right results for instructions whose effect on the stack depends on the constant pool entry they reference.copy()Use with caution, since 'BranchInstruction's have a 'target' reference which is not copied correctly (only basic types are).booleanTests for equality, delegated to comparatorstatic InstructionComparatorDeprecated.(6.0) use the built in comparator, or wrap this class in another object that implements these methodsintGets the length (in bytes) of instruction.getName()Gets the name of instruction, that is, opcode name.shortGets this instruction's opcode.inthashCode()Gets the hashCode of this object.static booleanisValidByte(int value) Tests if the value can fit in a byte (signed).static booleanisValidShort(int value) Tests if the value can fit in a short (signed).intThis method also gives right results for instructions whose effect on the stack depends on the constant pool entry they reference.static InstructionreadInstruction(ByteSequence bytes) Reads an instruction from (byte code) input stream and return the appropriate object.static voidDeprecated.(6.0) use the built in comparator, or wrap this class in another object that implements these methodstoString()Methods inherited from interface LoadClass
getTypeModifier and TypeMethodDescriptiongetType(ConstantPoolGen cpg) Gets the type associated with this instruction.
-
Constructor Details
-
FieldOrMethod
Constructs a FieldOrMethod.- Parameters:
opcode- The opcode.index- to constant pool.
-
-
Method Details
-
getClassName
Deprecated.If the instruction references an array class, this method will return "java.lang.Object". For code generated by Java 1.5, this answer is sometimes wrong (for example, if the "clone()" method is called on an array). A better idea is to use thegetReferenceType(ConstantPoolGen)method, which correctly distinguishes between class types and array types.Gets the name of the referenced class/interface.- Parameters:
cpg- The constant pool generator.- Returns:
- name of the referenced class/interface.
-
getClassType
Deprecated.If the instruction references an array class, the ObjectType returned will be invalid. Use getReferenceType() instead.Gets the type of the referenced class/interface.- Parameters:
cpg- The constant pool generator.- Returns:
- type of the referenced class/interface.
-
getLoadClassType
Gets the ObjectType of the method return or field.- Specified by:
getLoadClassTypein interfaceLoadClass- Parameters:
cpg- The constant pool generator.- Returns:
- type of the referenced class/interface.
- Throws:
ClassGenException- Thrown when the field is (or method returns) an array.
-
getName
Gets the name of referenced method or field.- Parameters:
cpg- The constant pool generator.- Returns:
- name of referenced method/field.
-
getReferenceType
Gets the reference type representing the class, interface, or array class referenced by the instruction.- Parameters:
cpg- The ConstantPoolGen used to create the instruction.- Returns:
- An ObjectType (if the referenced class type is a class or interface), or an ArrayType (if the referenced class type is an array class)
-
getSignature
Gets the signature of referenced method or field.- Parameters:
cpg- The constant pool generator.- Returns:
- signature of referenced method/field.
-