是否可以“序列化?”在Java中使用注释的对象

时间:2016-03-15 17:02:54

标签: java serialization

我不确定“Serialize”是否是正确的单词,但是我想创建一些这样做的东西,现在:

private interface DummySerializer {
    default Map<String, String> serialize() {
        // Creates a Key/Value pair for all objects using the @DSerialize annotation.
    }
}

class DummyClass implements DummySerializer {
    private int hello = 0;
    @DSerialize private int world = 1;

}

Map<String, String> = new DummyClass().serialize();
// Print key/value pairs

此示例将打印出

world, 1

作为变量的名称是“world”,其中包含@DSerialize注释,变量的值为1.

我怎么能做这样的事情?

甚至可以更进一步并获得变量类型,例如“Integer”或“Float”

1 个答案:

答案 0 :(得分:0)

看一下messagepack - 它是一个用于序列化的跨平台协议(他们称之为二进制json)。 java实现基于注释。作为一个很好的特性,您可以序列化一个java对象,然后将其反序列化为一个不同编程语言的对象。

严格来说,这不是你想要的,我猜,但它能够做到这一点 http://msgpack.org/java example here