我们知道 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;
/**
* MessagePack6 s
*
* @author yhu
*/
public class MessagePack6DynamicTyping {
final Logger logger = LoggerFactory.getLogger(MessagePack6DynamicTyping.class);
/**
* Test MessagePack6 s
*/
@Test
public void MessagePack6DynamicTyping() {
logger.debug("MessagePack6 s for s");
// Create serialize s.
List src = new ArrayList();
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 dst1 = msgpack.read(raw, tList(TString));
// Or, Deserialze to Value then convert type.
Value dynamic = msgpack.read(raw);
List 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
继续阅读与本文标签相同的文章
几个线上问题追查的常用命令 | 1分钟系列
全网云主机爆款特惠,新用户限时享低至2折优惠
-
《阿里云前端技术周刊》第十六期
2026-05-21栏目: 教程
-
技术人如何通过了解业务,获取晋升机会? | 8月7号云栖夜读
2026-05-21栏目: 教程
-
【阿里云推广奖励计划】就现在,加入推广商标,赚钱!
2026-05-21栏目: 教程
-
Kubernetes 弹性伸缩全场景解析 (四)- 让核心组件充满弹性
2026-05-21栏目: 教程
-
阿里云史上最优惠活动:企业云服务器全场2折起!
2026-05-21栏目: 教程
