有没有办法从Java类创建POJO?

时间:2018-04-26 07:14:59

标签: java

我有一堆Java类。我需要创建只包含Java类字段的简单POJO。有一种方法可以从JSON创建POJO,但我需要直接从Java类开始。

Java类可能具有逻辑方法,并基于不同的东西构建。我的目标只是在POJO中保存状态并通过网络发送它并在同一组POJO中反序列化。

3 个答案:

答案 0 :(得分:0)

使用一些JSON库。

对于前。 GSON

您可以使用transient标识符选择要序列化的字段。

除此之外,这些库提供了更多,绝对是您指定的所有要求。

答案 1 :(得分:0)

你可以很好地序列化Java类,不需要将它们删除到它们的字段(这听起来像你想要的那样)。

class MyClass implements Serializable {
    private int myInt;
    private String myString;

    public MyClass(int mi, String ms) {
        myInt = mi; myString = ms;
    }

    public String doStuff() { return String.format("%s %d", myString, myInt); }
}

序列化代码:

MyClass toSerialize = new MyClass(5, "Test");
try (ObjectOutputStream out = new ObjectOutputStream(getNetworkOutstream())) {
   out.writeObject(toSerialize);
}

反序列化代码:

try (ObjectInputStream in = new ObjectInputStream(getNetworkInStream())) {
    MyClass received = (MyClass) in.readObject();
}

doStuff方法不会妨碍你的想法。

需要注意的是,所有字段都必须是Serializable(或原语)。

答案 2 :(得分:0)

如果您正在寻找一种以编程方式解析所有这些类并为它们生成POJO的方法,那么您可以使用Antlr,JavaCC或JavaParser等库来分析源,然后生成并保存新的POJO。