## Uses of Interface
com.sun.jdi.ObjectReference

- Packages that use ObjectReference
  Package | Description
  --- | ---
  com.sun.jdi | This is the core package of the Java Debug Interface (JDI), it defines mirrors for values, types, and the target VirtualMachine itself - as well bootstrapping facilities.
  com.sun.jdi.event | This package defines JDI events and event processing.
  com.sun.jdi.request | This package is used to request that a JDI event be sent under specified conditions.

- - ### Uses of ObjectReference in com.sun.jdi

    Subinterfaces of ObjectReference in com.sun.jdi
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `ArrayReference` | Provides access to an array object and its components in the target VM.
    `interface` | `ClassLoaderReference` | A class loader object from the target VM.
    `interface` | `ClassObjectReference` | An instance of java.lang.Class from the target VM.
    `interface` | `ModuleReference` | A module in the target VM.
    `interface` | `StringReference` | A string object from the target VM.
    `interface` | `ThreadGroupReference` | A thread group object from the target VM.
    `interface` | `ThreadReference` | A thread object from the target VM.

    Methods in com.sun.jdi that return ObjectReference
    Modifier and Type | Method | Description
    --- | --- | ---
    `ObjectReference` | ThreadReference.`currentContendedMonitor()` | Returns an `ObjectReference` for the monitor, if any, for which this thread is currently waiting.
    `ObjectReference` | InvocationException.`exception()` |
    `ObjectReference` | MonitorInfo.`monitor()` | Returns the `ObjectReference` object for the monitor.
    `ObjectReference` | ClassType.`newInstance​(ThreadReference thread, Method method, List<? extends Value> arguments, int options)` | Constructs a new instance of this type, using the given constructor `Method` in the target VM.
    `ObjectReference` | StackFrame.`thisObject()` | Returns the value of 'this' for the current frame.

    Methods in com.sun.jdi that return types with arguments of type ObjectReference
    Modifier and Type | Method | Description
    --- | --- | ---
    `List<ObjectReference>` | ReferenceType.`instances​(long maxInstances)` | Returns instances of this ReferenceType.
    `List<ObjectReference>` | ThreadReference.`ownedMonitors()` | Returns a List containing an `ObjectReference` for each monitor owned by the thread.
    `List<ObjectReference>` | ObjectReference.`referringObjects​(long maxReferrers)` | Returns objects that directly reference this object.

    Methods in com.sun.jdi with parameters of type ObjectReference
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | ThreadReference.`stop​(ObjectReference throwable)` | Stops this thread with an asynchronous exception.

    Constructors in com.sun.jdi with parameters of type ObjectReference
    Constructor | Description
    --- | ---
    `InvocationException​(ObjectReference exception)` |

  - ### Uses of ObjectReference in com.sun.jdi.event

    Methods in com.sun.jdi.event that return ObjectReference
    Modifier and Type | Method | Description
    --- | --- | ---
    `ObjectReference` | ExceptionEvent.`exception()` | Gets the thrown exception object.
    `ObjectReference` | MonitorContendedEnteredEvent.`monitor()` | Returns the monitor that was entered.
    `ObjectReference` | MonitorContendedEnterEvent.`monitor()` | Returns the method that was entered.
    `ObjectReference` | MonitorWaitedEvent.`monitor()` | Returns the monitor object this thread waited on.
    `ObjectReference` | MonitorWaitEvent.`monitor()` | Returns the monitor object that the thread about to wait.
    `ObjectReference` | WatchpointEvent.`object()` | Returns the object whose field is about to be accessed/modified.

  - ### Uses of ObjectReference in com.sun.jdi.request

    Methods in com.sun.jdi.request with parameters of type ObjectReference
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | BreakpointRequest.`addInstanceFilter​(ObjectReference instance)` | Restricts the events generated by this request to those in which the currently executing instance is the object specified.
    `void` | ExceptionRequest.`addInstanceFilter​(ObjectReference instance)` | Restricts the events generated by this request to those in which the currently executing instance ("this") is the object specified.
    `void` | MethodEntryRequest.`addInstanceFilter​(ObjectReference instance)` | Restricts the events generated by this request to those in which the currently executing instance ("this") is the object specified.
    `void` | MethodExitRequest.`addInstanceFilter​(ObjectReference instance)` | Restricts the events generated by this request to those in which the currently executing instance ("this") is the object specified.
    `void` | MonitorContendedEnteredRequest.`addInstanceFilter​(ObjectReference instance)` | Restricts the events generated by this request to those in which the currently executing instance ("this") is the object specified.
    `void` | MonitorContendedEnterRequest.`addInstanceFilter​(ObjectReference instance)` | Restricts the events generated by this request to those in which the currently executing instance ("this") is the object specified.
    `void` | MonitorWaitedRequest.`addInstanceFilter​(ObjectReference instance)` | Restricts the events generated by this request to those in which the currently executing instance ("this") is the object specified.
    `void` | MonitorWaitRequest.`addInstanceFilter​(ObjectReference instance)` | Restricts the events generated by this request to those in which the currently executing instance ("this") is the object specified.
    `void` | StepRequest.`addInstanceFilter​(ObjectReference instance)` | Restricts the events generated by this request to those in which the currently executing instance ("this") is the object specified.
    `void` | WatchpointRequest.`addInstanceFilter​(ObjectReference instance)` | Restricts the events generated by this request to those in which the currently executing instance ("this") is the object specified.