Class ProtobufSerializer
java.lang.Object
cloud.opencode.base.serialization.binary.ProtobufSerializer
- All Implemented Interfaces:
Serializer
ProtobufSerializer - Google Protocol Buffers Serialization
Protobuf 序列化器
Uses Google Protocol Buffers for cross-language high-performance serialization. Only supports objects that are Protobuf Message types.
使用 Google Protocol Buffers 进行跨语言高性能序列化。 仅支持 Protobuf Message 类型的对象。
Features | 主要功能:
- Cross-language compatibility - 跨语言兼容性
- High performance - 高性能
- Schema evolution support - Schema 演进支持
- Compact binary format - 紧凑的二进制格式
Limitations | 限制:
- Only supports Protobuf Message types - 仅支持 Protobuf Message 类型
- Requires .proto files and code generation - 需要 .proto 文件和代码生成
Usage Examples | 使用示例:
ProtobufSerializer serializer = new ProtobufSerializer();
// Serialize (object must be a Protobuf Message)
byte[] data = serializer.serialize(userProto);
// Deserialize
UserProto restored = serializer.deserialize(data, UserProto.class);
Security | 安全性:
- Thread-safe: Yes (stateless) - 线程安全: 是 (无状态)
Performance | 性能特性:
- Time complexity: O(n) where n = message size - O(n), n为消息大小
- Space complexity: O(n) for serialized bytes - 序列化字节 O(n)
- Since:
- JDK 25, opencode-base-serialization V1.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<T> Tdeserialize(byte[] data, TypeReference<T> typeRef) Deserializes byte array to a generic type using TypeReference.<T> Tdeserialize(byte[] data, Class<T> type) Deserializes byte array to an object of the specified class.<T> Tdeserialize(byte[] data, Type type) Deserializes byte array using a Type.Returns the format name of this serializer.Returns the MIME type for this serializer.byte[]Serializes an object to byte array.booleanChecks if this serializer supports the given type.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Serializer
isTextBased
-
Field Details
-
FORMAT
-
-
Constructor Details
-
ProtobufSerializer
public ProtobufSerializer()
-
-
Method Details
-
serialize
Description copied from interface:SerializerSerializes an object to byte array. 将对象序列化为字节数组。- Specified by:
serializein interfaceSerializer- Parameters:
obj- the object to serialize - 要序列化的对象- Returns:
- the serialized bytes - 序列化后的字节数组
-
deserialize
Description copied from interface:SerializerDeserializes byte array to an object of the specified class. 将字节数组反序列化为指定类的对象。- Specified by:
deserializein interfaceSerializer- Type Parameters:
T- the target type - 目标类型- Parameters:
data- the serialized data - 序列化的数据type- the target class - 目标类- Returns:
- the deserialized object - 反序列化后的对象
-
deserialize
Description copied from interface:SerializerDeserializes byte array to a generic type using TypeReference. 使用 TypeReference 将字节数组反序列化为泛型类型。This method preserves generic type information that would otherwise be lost due to type erasure.
此方法保留了由于类型擦除而丢失的泛型类型信息。
- Specified by:
deserializein interfaceSerializer- Type Parameters:
T- the target type - 目标类型- Parameters:
data- the serialized data - 序列化的数据typeRef- the type reference - 类型引用- Returns:
- the deserialized object - 反序列化后的对象
-
deserialize
Description copied from interface:SerializerDeserializes byte array using a Type. 使用 Type 反序列化字节数组。- Specified by:
deserializein interfaceSerializer- Type Parameters:
T- the target type - 目标类型- Parameters:
data- the serialized data - 序列化的数据type- the target type - 目标类型- Returns:
- the deserialized object - 反序列化后的对象
-
getFormat
Description copied from interface:SerializerReturns the format name of this serializer. 返回此序列化器的格式名称。Examples: "json", "xml", "kryo", "protobuf", "jdk"
示例: "json", "xml", "kryo", "protobuf", "jdk"
- Specified by:
getFormatin interfaceSerializer- Returns:
- the format name - 格式名称
-
getMimeType
Description copied from interface:SerializerReturns the MIME type for this serializer. 返回此序列化器的 MIME 类型。- Specified by:
getMimeTypein interfaceSerializer- Returns:
- the MIME type (default: "application/octet-stream") - MIME 类型
-
supports
Description copied from interface:SerializerChecks if this serializer supports the given type. 检查此序列化器是否支持给定类型。Some serializers have specific type requirements. For example, ProtobufSerializer only supports Protobuf Message types.
某些序列化器有特定的类型要求。 例如,ProtobufSerializer 仅支持 Protobuf Message 类型。
- Specified by:
supportsin interfaceSerializer- Parameters:
type- the type to check - 要检查的类型- Returns:
- true if supported - 如果支持则返回 true
-