Message
Date: 2017-07-08

com.google.protobuf

## Interface Message

- All Superinterfaces:
    MessageLite, MessageLiteOrBuilder, MessageOrBuilder
  All Known Implementing Classes:
    AbstractMessage, DescriptorProtos.DescriptorProto, DescriptorProtos.DescriptorProto.ExtensionRange, DescriptorProtos.DescriptorProto.ReservedRange, DescriptorProtos.EnumDescriptorProto, DescriptorProtos.EnumOptions, DescriptorProtos.EnumValueDescriptorProto, DescriptorProtos.EnumValueOptions, DescriptorProtos.FieldDescriptorProto, DescriptorProtos.FieldOptions, DescriptorProtos.FileDescriptorProto, DescriptorProtos.FileDescriptorSet, DescriptorProtos.FileOptions, DescriptorProtos.GeneratedCodeInfo, DescriptorProtos.GeneratedCodeInfo.Annotation, DescriptorProtos.MessageOptions, DescriptorProtos.MethodDescriptorProto, DescriptorProtos.MethodOptions, DescriptorProtos.OneofDescriptorProto, DescriptorProtos.OneofOptions, DescriptorProtos.ServiceDescriptorProto, DescriptorProtos.ServiceOptions, DescriptorProtos.SourceCodeInfo, DescriptorProtos.SourceCodeInfo.Location, DescriptorProtos.UninterpretedOption, DescriptorProtos.UninterpretedOption.NamePart, DynamicMessage, GeneratedMessage, GeneratedMessage.ExtendableMessage, GeneratedMessageV3, GeneratedMessageV3.ExtendableMessage, MapEntry

      public interface Message
      extends MessageLite, MessageOrBuilder

  Abstract interface implemented by Protocol Message objects.

  See also `MessageLite`, which defines most of the methods that typical users care about. `Message` adds to it methods that are not available in the "lite" runtime. The biggest added features are introspection and reflection -- i.e., getting descriptors for the message type and accessing the field values dynamically.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static interface` | `Message.Builder` Abstract interface implemented by Protocol Message builders.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(java.lang.Object other)` Compares the specified object with this message for equality.
    `Parser<? extends Message>` | `getParserForType()` Gets the parser for a message of the same type as this message.
    `int` | `hashCode()` Returns the hash code value for this message.
    `Message.Builder` | `newBuilderForType()` Constructs a new builder for a message of the same type as this message.
    `Message.Builder` | `toBuilder()` Constructs a builder initialized with the current message.
    `java.lang.String` | `toString()` Converts the message to a string in protocol buffer text format.

    - ### Methods inherited from interface com.google.protobuf.MessageLite

      `getSerializedSize, toByteArray, toByteString, writeDelimitedTo, writeTo, writeTo`

    - ### Methods inherited from interface com.google.protobuf.MessageOrBuilder

      `findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof`

    - ### Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

      `isInitialized`

- - ### Method Detail

    - #### getParserForType

          Parser<? extends Message> getParserForType()

      Description copied from interface: `MessageLite`
      Gets the parser for a message of the same type as this message.
      Specified by:
        `getParserForType` in interface `MessageLite`

    - #### equals

          boolean equals(java.lang.Object other)

      Compares the specified object with this message for equality. Returns `true` if the given object is a message of the same type (as defined by `getDescriptorForType()`) and has identical values for all of its fields. Subclasses must implement this; inheriting `Object.equals()` is incorrect.
      Overrides:
        `equals` in class `java.lang.Object`
      Parameters:
        `other` - object to be compared for equality with this message
      Returns:
        `true` if the specified object is equal to this message

    - #### hashCode

          int hashCode()

      Returns the hash code value for this message. The hash code of a message should mix the message's type (object identity of the descriptor) with its contents (known and unknown field values). Subclasses must implement this; inheriting `Object.hashCode()` is incorrect.
      Overrides:
        `hashCode` in class `java.lang.Object`
      Returns:
        the hash code value for this message
      See Also:
        `Map.hashCode()`

    - #### toString

          java.lang.String toString()

      Converts the message to a string in protocol buffer text format. This is just a trivial wrapper around `TextFormat.printToString(MessageOrBuilder)`.
      Overrides:
        `toString` in class `java.lang.Object`

    - #### newBuilderForType

          Message.Builder newBuilderForType()

      Description copied from interface: `MessageLite`
      Constructs a new builder for a message of the same type as this message.
      Specified by:
        `newBuilderForType` in interface `MessageLite`

    - #### toBuilder

          Message.Builder toBuilder()

      Description copied from interface: `MessageLite`
      Constructs a builder initialized with the current message. Use this to derive a new message from the current one.
      Specified by:
        `toBuilder` in interface `MessageLite`