com.google.protobuf

## Class MapField<K,V>

- java.lang.Object
- - com.google.protobuf.MapField<K,V>

-     public class MapField<K,V>
      extends java.lang.Object

  Internal representation of map fields in generated messages. This class supports accessing the map field as a `Map` to be used in generated API and also supports accessing the field as a `List` to be used in reflection API. It keeps track of where the data is currently stored and do necessary conversions between map and list. This class is a protobuf implementation detail. Users shouldn't use this class directly. THREAD-SAFETY NOTE: Read-only access is thread-safe. Users can call getMap() and getList() concurrently in multiple threads. If write-access is needed, all access must be synchronized.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static com.google.protobuf.MutabilityOracle` | `IMMUTABLE`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `clear()`
    `MapField<K,V>` | `copy()` Returns a deep copy of this MapField.
    `static <K,V> MapField<K,V>` | `emptyMapField(MapEntry<K,V> defaultEntry)` Returns an immutable empty MapField.
    `void` | `ensureMutable()` Throws an `UnsupportedOperationException` if not mutable.
    `boolean` | `equals(java.lang.Object object)`
    `java.util.Map<K,V>` | `getMap()` Returns the content of this MapField as a read-only Map.
    `java.util.Map<K,V>` | `getMutableMap()` Gets a mutable Map view of this MapField.
    `int` | `hashCode()`
    `boolean` | `isMutable()` Returns whether this field can be modified.
    `void` | `makeImmutable()` Makes this list immutable.
    `void` | `mergeFrom(MapField<K,V> other)`
    `static <K,V> MapField<K,V>` | `newMapField(MapEntry<K,V> defaultEntry)` Creates a new mutable empty MapField.

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### IMMUTABLE

          public static final com.google.protobuf.MutabilityOracle IMMUTABLE

  - ### Method Detail

    - #### emptyMapField

          public static <K,V> MapField<K,V> emptyMapField(MapEntry<K,V> defaultEntry)

      Returns an immutable empty MapField.

    - #### newMapField

          public static <K,V> MapField<K,V> newMapField(MapEntry<K,V> defaultEntry)

      Creates a new mutable empty MapField.

    - #### getMap

          public java.util.Map<K,V> getMap()

      Returns the content of this MapField as a read-only Map.

    - #### getMutableMap

          public java.util.Map<K,V> getMutableMap()

      Gets a mutable Map view of this MapField.

    - #### mergeFrom

          public void mergeFrom(MapField<K,V> other)

    - #### clear

          public void clear()

    - #### equals

          public boolean equals(java.lang.Object object)

      Overrides:
        `equals` in class `java.lang.Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### copy

          public MapField<K,V> copy()

      Returns a deep copy of this MapField.

    - #### makeImmutable

          public void makeImmutable()

      Makes this list immutable. All subsequent modifications will throw an `UnsupportedOperationException`.

    - #### isMutable

          public boolean isMutable()

      Returns whether this field can be modified.

    - #### ensureMutable

          public void ensureMutable()

      Throws an `UnsupportedOperationException` if not mutable.