# Class ObjectType

java.lang.Object
org.apache.bcel.generic.Type
org.apache.bcel.generic.ReferenceType
org.apache.bcel.generic.ObjectType

public class ObjectType extends ReferenceType
Denotes reference such as `String`.

- ## Field Summary

  ### Fields inherited from class Type

  `BOOLEAN, BYTE, CHAR, CLASS, DOUBLE, FLOAT, INT, LONG, NO_ARGS, NULL, OBJECT, SHORT, signature, STRING, STRINGBUFFER, THROWABLE, type, UNKNOWN, VOID`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ObjectType(String className)`
  Constructs a new instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `accessibleTo(ObjectType accessor)`
  Java Virtual Machine Specification edition 2, � 5.4.4 Access Control
  `boolean`
  `equals(Object type)`
  `String`
  `getClassName()`
  `static ObjectType`
  `getInstance(String className)`
  Constructs a new instance.
  `int`
  `hashCode()`
  `boolean`
  `referencesClass()`
  Deprecated.
  (since 6.0) this method returns an inaccurate result if the class or interface referenced cannot be found: use referencesClassExact() instead
  `boolean`
  `referencesClassExact()`
  Return true if this type references a class, false if it references an interface.
  `boolean`
  `referencesInterface()`
  Deprecated.
  (since 6.0) this method returns an inaccurate result if the class or interface referenced cannot be found: use referencesInterfaceExact() instead
  `boolean`
  `referencesInterfaceExact()`
  Return true if this type references an interface, false if it references a class.
  `boolean`
  `subclassOf(ObjectType superclass)`
  Return true if this type is a subclass of given ObjectType.

  ### Methods inherited from class ReferenceType

  `firstCommonSuperclass, getFirstCommonSuperclass, isAssignmentCompatibleWith, isCastableTo`

  ### Methods inherited from class Type

  `getArgumentTypes, getMethodSignature, getReturnType, getSignature, getSignature, getSize, getType, getType, getType, getTypes, normalizeForStackOrLocal, toString`

  ### Methods inherited from class Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### ObjectType

    public ObjectType(String className)
    Constructs a new instance.
    Parameters:
      `className` - fully qualified class name, for example `String`

- ## Method Details

  - ### getInstance

    public static ObjectType getInstance(String className)
    Constructs a new instance.
    Parameters:
      `className` - fully qualified class name, for example `String`.
    Returns:
      a new instance.
    Since:
      6.0

  - ### accessibleTo

    public boolean accessibleTo(ObjectType accessor) throws ClassNotFoundException
    Java Virtual Machine Specification edition 2, � 5.4.4 Access Control
    Throws:
      `ClassNotFoundException` - if the class referenced by this type can't be found

  - ### equals

    public boolean equals(Object type)
    Overrides:
      `equals` in class `Type`
    Returns:
      true if both type objects refer to the same class.

  - ### getClassName

    public String getClassName()
    Overrides:
      `getClassName` in class `Type`
    Returns:
      name of referenced class

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Type`
    Returns:
      a hash code value for the object.

  - ### referencesClass

    @Deprecated public boolean referencesClass()
    Deprecated.
    (since 6.0) this method returns an inaccurate result if the class or interface referenced cannot be found: use referencesClassExact() instead
    If "this" doesn't reference a class, it references an interface or a non-existant entity.

  - ### referencesClassExact

    public boolean referencesClassExact() throws ClassNotFoundException
    Return true if this type references a class, false if it references an interface.
    Returns:
      true if the type references a class, false if it references an interface
    Throws:
      `ClassNotFoundException` - if the class or interface referenced by this type can't be found

  - ### referencesInterface

    @Deprecated public boolean referencesInterface()
    Deprecated.
    (since 6.0) this method returns an inaccurate result if the class or interface referenced cannot be found: use referencesInterfaceExact() instead
    If "this" doesn't reference an interface, it references a class or a non-existant entity.

  - ### referencesInterfaceExact

    public boolean referencesInterfaceExact() throws ClassNotFoundException
    Return true if this type references an interface, false if it references a class.
    Returns:
      true if the type references an interface, false if it references a class
    Throws:
      `ClassNotFoundException` - if the class or interface referenced by this type can't be found

  - ### subclassOf

    public boolean subclassOf(ObjectType superclass) throws ClassNotFoundException
    Return true if this type is a subclass of given ObjectType.
    Throws:
      `ClassNotFoundException` - if any of this class's superclasses can't be found