MessagePack Java 0.6.X 动态类型
2024-09-05 14:50:52
我们知道 Java 是一个静态类型的语言。通过输入 Value
MessagePack能够实现动态的特性。
Value
有方法来检查自己的类型(isIntegerType()
, isArrayType()
, 等...),同时也转换为自己的类型 (asStringValue()
, convert(Template))。
package com.insight.demo.msgpack; import org.junit.Test;
import org.msgpack.MessagePack;
import org.msgpack.type.Value;
import org.msgpack.unpacker.Converter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import java.util.ArrayList;
import java.util.List; import static org.msgpack.template.Templates.TString;
import static org.msgpack.template.Templates.tList; /**
* MessagePack6Objects
*
* @author yhu
*/
public class MessagePack6DynamicTyping {
final Logger logger = LoggerFactory.getLogger(MessagePack6DynamicTyping.class); /**
* Test MessagePack6Objects
*/
@Test
public void MessagePack6DynamicTyping() {
logger.debug("MessagePack6Objects for Objects"); // Create serialize objects.
List<String> src = new ArrayList<String>();
src.add("msgpack");
src.add("kumofs");
src.add("viver"); MessagePack msgpack = new MessagePack();
try { // Serialize
byte[] raw = msgpack.write(src); // Deserialize directly using a template
List<String> dst1 = msgpack.read(raw, tList(TString)); // Or, Deserialze to Value then convert type.
Value dynamic = msgpack.read(raw);
List<String> dst2 = new Converter(dynamic).read(tList(TString)); } catch (Exception ex) {
logger.error("MessagePack Serialization And Deserialization error", ex);
}
}
}
https://www.cwiki.us/display/Serialization/QuickStart+For+MessagePack+Java+0.6.X
最新文章
- iOS Assigning to &#39;id<;XXXDelegate>;&#39; from incompatible type &#39;BViewController *__strong&#39;
- Mysql的二进制日志binlog的模式说明
- [转]libsvm 训练后的模型参数讲解
- 欧拉函数 cojs 2181. 打表
- 【Unity Shaders】学习笔记——SurfaceShader(七)法线贴图
- linux shell pushd popd dirs命令
- meta里面的viewport属性
- jsp servelet
- Android Service组件(1)
- 将MFC Grid control封装为DLL的做法及其在DLL中的使用方法
- [SOJ]Easy sort (归并排序)
- 关于JSON.parse在ie6,ie7下未定义的issue
- HDU-5086-Revenge of Segment Tree
- Block Token 原理分析
- Numpy快速入门——shape属性,你秒懂了吗
- Restful概念的理解和践行
- Nuxt 自动化部署及打包后文件自动上传七牛云
- algs4 使用 DrJava 编写 Hello World on Windows
- mybatis是如何防止SQL注入的
- python模块psutil的使用