# Interface ClassObjectReference

All Superinterfaces:
  `Mirror, ObjectReference, Value`

public interface ClassObjectReference extends ObjectReference
An instance of java.lang.Class from the target VM. Use this interface to access type information for the class, array, or interface that this object reflects.

Since:
  1.3
See Also:
  - `ReferenceType`

## Field Summary

### Fields declared in interface ObjectReference

`INVOKE_NONVIRTUAL, INVOKE_SINGLE_THREADED`
Modifier and Type
Field
Description
`static final int`
`INVOKE_NONVIRTUAL`
Perform non-virtual method invocation
`static final int`
`INVOKE_SINGLE_THREADED`
Perform method invocation with only the invoking thread resumed

## Method Summary

Modifier and Type
Method
Description
`ReferenceType`
`reflectedType()`
Returns the `ReferenceType` corresponding to this class object.

### Methods declared in interface Mirror

`toString, virtualMachine`
Modifier and Type
Method
Description
`String`
`toString()`
Returns a String describing this mirror
`VirtualMachine`
`virtualMachine()`
Gets the VirtualMachine to which this Mirror belongs.

### Methods declared in interface ObjectReference

`disableCollection, enableCollection, entryCount, equals, getValue, getValues, hashCode, invokeMethod, isCollected, owningThread, referenceType, referringObjects, setValue, uniqueID, waitingThreads`
Modifier and Type
Method
Description
`void`
`disableCollection()`
Prevents garbage collection for this object.
`void`
`enableCollection()`
Permits garbage collection for this object.
`int`
`entryCount()`
Returns the number of times this object's monitor has been entered by the current owning thread if the owning thread is platform thread; Returns 0 if not owned by a platform thread.
`boolean`
`equals(Object obj)`
Compares the specified Object with this ObjectReference for equality.
`Value`
`getValue(Field sig)`
Gets the value of a given instance or static field in this object.
`Map<Field,Value>`
`getValues(List<? extends Field> fields)`
Gets the value of multiple instance and/or static fields in this object.
`int`
`hashCode()`
Returns the hash code value for this ObjectReference.
`Value`
`invokeMethod(ThreadReference thread, Method method, List<? extends Value> arguments, int options)`
Invokes the specified `Method` on this object in the target VM.
`boolean`
`isCollected()`
Determines if this object has been garbage collected in the target VM.
`ThreadReference`
`owningThread()`
Returns a `ThreadReference` for the platform thread, if any, which currently owns this object's monitor.
`ReferenceType`
`referenceType()`
Gets the `ReferenceType` that mirrors the type of this object.
`List<ObjectReference>`
`referringObjects(long maxReferrers)`
Returns objects that directly reference this object.
`void`
`setValue(Field field, Value value)`
Sets the value of a given instance or static field in this object.
`long`
`uniqueID()`
Returns a unique identifier for this ObjectReference.
`List<ThreadReference>`
`waitingThreads()`
Returns a List containing a `ThreadReference` for each platform thread currently waiting for this object's monitor.

### Methods declared in interface Value

`type`
Modifier and Type
Method
Description
`Type`
`type()`
Returns the run-time type of this value.

## Method Details

### reflectedType

ReferenceType reflectedType()
Returns the `ReferenceType` corresponding to this class object. The returned type can be used to obtain detailed information about the class.

Returns:
  the `ReferenceType` reflected by this class object.