Class Any

All Implemented Interfaces:
AnyOrBuilder, Message, MessageLite, MessageLiteOrBuilder, MessageOrBuilder, Serializable

public final class Any extends GeneratedMessageV3 implements AnyOrBuilder
 `Any` contains an arbitrary serialized protocol buffer message along with a
 URL that describes the type of the serialized message.
 Protobuf library provides support to pack/unpack Any values in the form
 of utility functions or additional generated methods of the Any type.
 Example 1: Pack and unpack a message in C++.
     Foo foo = ...;
     Any any;
     any.PackFrom(foo);
     ...
     if (any.UnpackTo(&foo)) {
       ...
     }
 Example 2: Pack and unpack a message in Java.
     Foo foo = ...;
     Any any = Any.pack(foo);
     ...
     if (any.is(Foo.class)) {
       foo = any.unpack(Foo.class);
     }
  Example 3: Pack and unpack a message in Python.
     foo = Foo(...)
     any = Any()
     any.Pack(foo)
     ...
     if any.Is(Foo.DESCRIPTOR):
       any.Unpack(foo)
       ...
  Example 4: Pack and unpack a message in Go
      foo := &pb.Foo{...}
      any, err := anypb.New(foo)
      if err != nil {
        ...
      }
      ...
      foo := &pb.Foo{}
      if err := any.UnmarshalTo(foo); err != nil {
        ...
      }
 The pack methods provided by protobuf library will by default use
 'type.googleapis.com/full.type.name' as the type URL and the unpack
 methods only use the fully qualified type name after the last '/'
 in the type URL, for example "foo.bar.com/x/y.z" will yield type
 name "y.z".
 JSON
 ====
 The JSON representation of an `Any` value uses the regular
 representation of the deserialized, embedded message, with an
 additional field `@type` which contains the type URL. Example:
     package google.profile;
     message Person {
       string first_name = 1;
       string last_name = 2;
     }
     {
       "@type": "type.googleapis.com/google.profile.Person",
       "firstName": <string>,
       "lastName": <string>
     }
 If the embedded message type is well-known and has a custom JSON
 representation, that representation will be embedded adding a field
 `value` which holds the custom JSON in addition to the `@type`
 field. Example (for message [google.protobuf.Duration][]):
     {
       "@type": "type.googleapis.com/google.protobuf.Duration",
       "value": "1.212s"
     }
 
Protobuf type google.protobuf.Any
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • cachedUnpackValue

      private volatile Message cachedUnpackValue
    • TYPE_URL_FIELD_NUMBER

      public static final int TYPE_URL_FIELD_NUMBER
      See Also:
    • typeUrl_

      private volatile Object typeUrl_
    • VALUE_FIELD_NUMBER

      public static final int VALUE_FIELD_NUMBER
      See Also:
    • value_

      private ByteString value_
    • memoizedIsInitialized

      private byte memoizedIsInitialized
    • DEFAULT_INSTANCE

      private static final Any DEFAULT_INSTANCE
    • PARSER

      private static final Parser<Any> PARSER
  • Constructor Details

  • Method Details