# Interface Mutable<T>

Type Parameters:
  `T` - the type to wrap.

All Superinterfaces:
  `Supplier<T>`

All Known Implementing Classes:
  `MutableBoolean, MutableByte, MutableDouble, MutableFloat, MutableInt, MutableLong, MutableObject, MutableShort`

public interface Mutable<T> extends Supplier<T>
Provides mutable access to a value.

`Mutable` is used as a generic interface to the implementations in this package.

A typical use case would be to enable a primitive or string to be passed to a method and allow that method to effectively change the value of the primitive/object. Another use case is to store a frequently changing primitive in a collection (for example a total in a map) without needing to create new Integer/Long wrapper objects.

Since:
  2.1

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default T`
  `get()`
  Gets the value of this mutable.
  `T`
  `getValue()`
  Deprecated.
  Use `get()`.
  `void`
  `setValue(T value)`
  Sets the value of this mutable.

- ## Method Details

  - ### get

    default T get()
    Gets the value of this mutable.
    Specified by:
      `get` in interface `Supplier<T>`
    Returns:
      the stored value.
    Since:
      3.18.0

  - ### getValue

    @Deprecated T getValue()
    Deprecated.
    Use `get()`.
    Gets the value of this mutable.
    Returns:
      the stored value.

  - ### setValue

    void setValue(T value)
    Sets the value of this mutable.
    Parameters:
      `value` - the value to store.
    Throws:
      `NullPointerException` - if the object is null and null is invalid.
      `ClassCastException` - if the type is invalid.