Class MapField<K,V>


public class MapField<K,V> extends MapFieldReflectionAccessor
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 Details

    • IMMUTABLE

      static final com.google.protobuf.MutabilityOracle IMMUTABLE
  • Method Details

    • 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 Map<K,V> getMap()
      Returns the content of this MapField as a read-only Map.
    • getMutableMap

      public 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(Object object)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class 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()