Last active
December 14, 2015 04:39
-
-
Save takawitter/5029844 to your computer and use it in GitHub Desktop.
MessagePack JavaでListを使うテスト。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class MsgPackTest { | |
public static void main(String[] args) throws Exception { | |
MessagePack msgpack = new MessagePack(); | |
List<String> lines = Arrays.asList("hello", "world"); | |
byte[] bytes = msgpack.write(lines); | |
msgpack.register(List.class, new ListTemplate(ValueTemplate.getInstance())); | |
for(Value v: (List<Value>)msgpack.read(bytes, List.class)){ | |
System.out.println(new String(v.asRawValue().getByteArray(), "UTF-8")); | |
} | |
} | |
} |
例外出ないように修正。ListTemplateとValueTemplate使えば例外は出ない(値の取り出しはめんどい)。
中身がStringに限定されてるんであれば、new ListTemplate(StringTemplate.getInstance())でもいける。
ただそうじゃないListもある場合、MessagePackオブジェクトは使い回しできない。
なんか微妙な感じだな。
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
実行するとこうなる。
Exception in thread "main" org.msgpack.MessageTypeException: convert into unknown type is invalid
at org.msgpack.template.AnyTemplate.read(AnyTemplate.java:52)
at org.msgpack.template.AbstractTemplate.read(AbstractTemplate.java:31)
at org.msgpack.template.ListTemplate.read(ListTemplate.java:66)
at org.msgpack.template.ListTemplate.read(ListTemplate.java:27)
at org.msgpack.template.AbstractTemplate.read(AbstractTemplate.java:31)
at org.msgpack.MessagePack.read(MessagePack.java:388)
at org.msgpack.MessagePack.read(MessagePack.java:371)
at MsgPackTest.main(MsgPackTest.java:19)