# Interface LoadClass

All Known Implementing Classes:
  `ANEWARRAY, CHECKCAST, FieldInstruction, FieldOrMethod, GETFIELD, GETSTATIC, INSTANCEOF, INVOKEDYNAMIC, InvokeInstruction, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, MULTIANEWARRAY, NEW, PUTFIELD, PUTSTATIC`

public interface LoadClass
Denotes that an instruction may start the process of loading and resolving the referenced class in the Virtual Machine.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ObjectType`
  `getLoadClassType(ConstantPoolGen cpg)`
  Returns the `ObjectType` of the referenced class or interface that may be loaded and resolved.
  `Type`
  `getType(ConstantPoolGen cpg)`
  Returns the type associated with this instruction.

- ## Method Details

  - ### getLoadClassType

    ObjectType getLoadClassType(ConstantPoolGen cpg)
    Returns the `ObjectType` of the referenced class or interface that may be loaded and resolved.
    Parameters:
      `cpg` - A ConstantPoolGen
    Returns:
      object type that may be loaded or null if a primitive is referenced

  - ### getType

    Type getType(ConstantPoolGen cpg)
    Returns the type associated with this instruction. LoadClass instances are always typed, but this type does not always refer to the type of the class or interface that it possibly forces to load. For example, `GETFIELD` would return the type of the field and not the type of the class where the field is defined. If no class is forced to be loaded, `null` is returned. An example for this is an `NEWARRAY` instruction that creates an `int[][]`.
    Parameters:
      `cpg` - A ConstantPoolGen
    Returns:
      the type associated with this instruction.
    See Also:
      - `getLoadClassType(ConstantPoolGen)`