2016-03-15 99 views
0

我不知道,如果“序列化”的对象是正确的话,但是我想创造的东西,这样做,现在:是否可以“序列化?”使用注释在Java中

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 

为变量的名称是包含在@DSerialize注释和变量的值,“世界”是1

我怎么能去这样做这样的事情?

甚至可以去一步更远,还可以获得变量的类型,例如“整型”或“浮动”

+3

看看其他框架是如何做到这一点。杰克逊前。反射是元编程的强大工具。 –

+0

@SleimanJneidi - 我不知道它是在其他框架中完成的(或者它可以完成),我会看看杰克逊。感谢您的推动。 – Hobbyist

回答

0

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

严格地讲,这不是你在找什么,我猜,但是这将是能够做到这一点的工作 http://msgpack.org/java example here

相关问题