Value (Java SE 11 & JDK 11 )
Keywords: com.sun.jdi.Value interface

Module jdk.jdi
Package com.sun.jdi

## Interface Value

- All Superinterfaces:
    `Mirror`
  All Known Subinterfaces:
    `ArrayReference`, `BooleanValue`, `ByteValue`, `CharValue`, `ClassLoaderReference`, `ClassObjectReference`, `DoubleValue`, `FloatValue`, `IntegerValue`, `LongValue`, `ModuleReference`, `ObjectReference`, `PrimitiveValue`, `ShortValue`, `StringReference`, `ThreadGroupReference`, `ThreadReference`, `VoidValue`

      public interface Value
      extends Mirror

  The mirror for a value in the target VM. This interface is the root of a value hierarchy encompassing primitive values and object values.

  Some examples of where values may be accessed:

  > `ObjectReference.getValue(Field)` | - value of a field
  > `StackFrame.getValue(LocalVariable)` | - value of a variable
  > `VirtualMachine.mirrorOf(double)` | - created in the target VM by the JDI client
  > `ModificationWatchpointEvent.valueToBe()` | - returned with an event

  The following tables illustrate which subinterfaces of Value are used to mirror values in the target VM --

  Subinterfaces of `PrimitiveValue`
  Kind of value | For example - expression in target | Is mirrored as an instance of | `Type` of value `Value.type()`
  --- | --- | --- | ---
  a boolean | `true` | `BooleanValue` | `BooleanType`
  a byte | `(byte)4` | `ByteValue` | `ByteType`
  a char | `'a'` | `CharValue` | `CharType`
  a double | `3.1415926` | `DoubleValue` | `DoubleType`
  a float | `2.5f` | `FloatValue` | `FloatType`
  an int | `22` | `IntegerValue` | `IntegerType`
  a long | `1024L` | `LongValue` | `LongType`
  a short | `(short)12` | `ShortValue` | `ShortType`
  a void |  | `VoidValue` | `VoidType`

  Subinterfaces of `ObjectReference`
  Kind of value | For example - expression in target | Is mirrored as an instance of | `Type` of value `Value.type()`
  --- | --- | --- | ---
  a class instance | `this` | `ObjectReference` | `ClassType`
  an array | `new int[5]` | `ArrayReference` | `ArrayType`
  a string | `"hello"` | `StringReference` | `ClassType`
  a thread | `Thread.currentThread()` | `ThreadReference` | `ClassType`
  a thread group | `Thread.currentThread()` `.getThreadGroup()` | `ThreadGroupReference` | `ClassType`
  a `java.lang.Class` instance | `this.getClass()` | `ClassObjectReference` | `ClassType`
  a class loader | `this.getClass()` `.getClassLoader()` | `ClassLoaderReference` | `ClassType`

  Other values
  Kind of value | For example - expression in target | Is mirrored as | `Type` of value
  --- | --- | --- | ---
  null | `null` | `null` | n/a

  Since:
    1.3

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Type` | `type()` | Returns the run-time type of this value.

    - ### Methods declared in interface com.sun.jdi.Mirror

      `toString, virtualMachine`

- - ### Method Detail

    - #### type

          Type type()

      Returns the run-time type of this value.
      Returns:
        a `Type` which mirrors the value's type in the target VM.
      See Also:
        `Type`