org.aspectj.apache.bcel.generic
Class ReferenceType
java.lang.Object
org.aspectj.apache.bcel.generic.Type
org.aspectj.apache.bcel.generic.ReferenceType
- Direct Known Subclasses:
- ArrayType, ObjectType
public abstract class ReferenceType
- extends Type
Super class for object and array types.
Nested classes/interfaces inherited from class org.aspectj.apache.bcel.generic.Type |
Type.TypeHolder |
Fields inherited from class org.aspectj.apache.bcel.generic.Type |
BOOLEAN, BYTE, CHAR, CLASS, DOUBLE, EXCEPTION, FLOAT, INT, INTEGER, ITERATOR, LIST, LONG, NO_ARGS, NULL, OBJECT, OBJECT_ARRAY, SHORT, signature, STRING, STRING_ARRAY, STRINGARRAY1, STRINGARRAY2, STRINGARRAY3, STRINGARRAY4, STRINGARRAY5, STRINGARRAY6, STRINGARRAY7, STRINGBUFFER, STRINGBUILDER, THROWABLE, type, UNKNOWN, VOID |
Constructor Summary |
protected |
ReferenceType(byte t,
java.lang.String s)
|
Method Summary |
ReferenceType |
getFirstCommonSuperclass(ReferenceType t)
This commutative operation returns the first common superclass (narrowest ReferenceType referencing a class, not an
interface). |
boolean |
isAssignmentCompatibleWith(Type t)
Return true iff this is assignment compatible with another type t as defined in the JVM specification; see the AASTORE
definition there. |
boolean |
isCastableTo(Type t)
Return true iff this type is castable to another type t as defined in the JVM specification. |
Methods inherited from class org.aspectj.apache.bcel.generic.Type |
getArgumentSizes, getArgumentTypes, getReturnType, getSignature, getSignature, getSignature, getSize, getType, getType, getType, getTypeInternal, getTypeSize, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
ReferenceType
protected ReferenceType(byte t,
java.lang.String s)
isCastableTo
public boolean isCastableTo(Type t)
- Return true iff this type is castable to another type t as defined in the JVM specification. The case where this is Type.NULL
is not defined (see the CHECKCAST definition in the JVM specification). However, because e.g. CHECKCAST doesn't throw a
ClassCastException when casting a null reference to any Object, true is returned in this case.
isAssignmentCompatibleWith
public boolean isAssignmentCompatibleWith(Type t)
- Return true iff this is assignment compatible with another type t as defined in the JVM specification; see the AASTORE
definition there.
getFirstCommonSuperclass
public ReferenceType getFirstCommonSuperclass(ReferenceType t)
- This commutative operation returns the first common superclass (narrowest ReferenceType referencing a class, not an
interface). If one of the types is a superclass of the other, the former is returned. If "this" is Type.NULL, then t is
returned. If t is Type.NULL, then "this" is returned. If "this" equals t ['this.equals(t)'] "this" is returned. If "this" or
t is an ArrayType, then Type.OBJECT is returned; unless their dimensions match. Then an ArrayType of the same number of
dimensions is returned, with its basic type being the first common super class of the basic types of "this" and t. If "this"
or t is a ReferenceType referencing an interface, then Type.OBJECT is returned. If not all of the two classes' superclasses
cannot be found, "null" is returned. See the JVM specification edition 2, "�4.9.2 The Bytecode Verifier".