# Interface StringReference

All Superinterfaces:
  `Mirror, ObjectReference, Value`

public interface StringReference extends ObjectReference
A string object from the target VM. A StringReference is an `ObjectReference` with additional access to string-specific information from the target VM.

Since:
  1.3

- ## 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
  `String`
  `value()`
  Returns the StringReference as a String.

  ### 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

  - ### value

    String value()
    Returns the StringReference as a String. The returned string is the equivalent of the mirrored string, but is an entity in the client VM and can be manipulated like any other string.
    Returns:
      the string value.