org.apache.bcel.generic
Class FieldOrMethod
java.lang.Object
org.apache.bcel.generic.Instruction
org.apache.bcel.generic.CPInstruction
org.apache.bcel.generic.FieldOrMethod
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, IndexedInstruction, LoadClass, TypedInstruction
- Direct Known Subclasses:
- FieldInstruction, InvokeInstruction
public abstract class FieldOrMethod
- extends CPInstruction
- implements LoadClass
Super class for InvokeInstruction and FieldInstruction, since they have
some methods in common!
- Version:
- $Id: FieldOrMethod.java 386056 2006-03-15 11:31:56Z tcurdt $
- Author:
- M. Dahm
- See Also:
- Serialized Form
Constructor Summary |
(package private) |
FieldOrMethod()
Empty constructor needed for the Class.newInstance() statement in
Instruction.readInstruction(). |
protected |
FieldOrMethod(short opcode,
int index)
|
Methods inherited from class org.apache.bcel.generic.Instruction |
accept, consumeStack, copy, dispose, equals, getComparator, getLength, getName, getOpcode, produceStack, readInstruction, setComparator, toString |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
FieldOrMethod
FieldOrMethod()
- Empty constructor needed for the Class.newInstance() statement in
Instruction.readInstruction(). Not to be used otherwise.
FieldOrMethod
protected FieldOrMethod(short opcode,
int index)
- Parameters:
index
- to constant pool
getSignature
public java.lang.String getSignature(ConstantPoolGen cpg)
- Returns:
- signature of referenced method/field.
getName
public java.lang.String getName(ConstantPoolGen cpg)
- Returns:
- name of referenced method/field.
getClassName
public java.lang.String getClassName(ConstantPoolGen cpg)
- 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 (e.g., if the "clone()" method is
called on an array). A better idea is to use
the getReferenceType() method, which correctly distinguishes
between class types and array types.
- Returns:
- name of the referenced class/interface
getClassType
public ObjectType getClassType(ConstantPoolGen cpg)
- Deprecated. If the instruction references an array class,
the ObjectType returned will be invalid. Use
getReferenceType() instead.
- Returns:
- type of the referenced class/interface
getReferenceType
public ReferenceType getReferenceType(ConstantPoolGen cpg)
- Return 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)
getLoadClassType
public ObjectType getLoadClassType(ConstantPoolGen cpg)
- Description copied from interface:
LoadClass
- Returns the ObjectType of the referenced class or interface
that may be loaded and resolved.
- Specified by:
getLoadClassType
in interface LoadClass
- Returns:
- type of the referenced class/interface