前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MessagePack Java 0.6.X 动态类型

MessagePack Java 0.6.X 动态类型

原创
作者头像
HoneyMoose
修改2019-08-08 10:16:16
3390
修改2019-08-08 10:16:16
举报
文章被收录于专栏:CWIKIUSCWIKIUS

我们知道 Java 是一个静态类型的语言。通过输入?Value?MessagePack能够实现动态的特性。

Value?有方法来检查自己的类型(isIntegerType(),?isArrayType(), 等...),同时也转换为自己的类型 (asStringValue(),?convert(Template))。

本代码可以在?https://github.com/cwiki-us-demo/messagepack-6-demo-java/blob/master/src/test/java/com/insight/demo/msgpack/MessagePack6DynamicTyping.java?中查看。

代码语言:javascript
复制
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);
????????}
????}
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com