有没有从Java类创建POJO的方法?
我有很多Java类。我需要创建简单的POJO,其中只包含来自Java类的字段。有一种方法可以从JSON创建POJO,但我需要直接从Java类创建POJO有没有从Java类创建POJO的方法?,java,Java,我有很多Java类。我需要创建简单的POJO,其中只包含来自Java类的字段。有一种方法可以从JSON创建POJO,但我需要直接从Java类创建POJO Java类可能有逻辑方法,并基于不同的东西构造。我的目标是将状态保存在POJO中,通过网络发送,并在同一组POJO中反序列化。使用一些JSON库 例如 您可以选择要序列化或不使用transient标识符的字段 除此之外,这些库还提供了更多且明确的所有您指定的需求。您可以很好地序列化Java类,无需将它们拆分到字段中(这听起来像是您想要的) 序列
Java类可能有逻辑方法,并基于不同的东西构造。我的目标是将状态保存在POJO中,通过网络发送,并在同一组POJO中反序列化。使用一些JSON库 例如 您可以选择要序列化或不使用
transient
标识符的字段
除此之外,这些库还提供了更多且明确的所有您指定的需求。您可以很好地序列化Java类,无需将它们拆分到字段中(这听起来像是您想要的) 序列化代码:
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
方法就不会妨碍你
需要注意的是,所有字段也必须是可序列化的(或原语)。如果您正在寻找一种方法以编程方式解析所有这些类并为它们生成POJO,那么您可以使用像Antlr、JavaCC或JavaParser这样的库来分析源代码,然后生成并保存新的POJO。您认为POJO是什么?它的意思是“普通的旧Java对象”。是的,这是一个令人困惑的问题。POJO是一个Java对象。您需要的是像其他人提到的那样的JSON库。您正在使用某个web框架吗?您可以复制数据,但不能复制“逻辑方法”,数据和逻辑不应在一个POJO类中混合,尤其是在它将被序列化时。这应该是一个注释。@luk2302我不同意:它提供(或试图提供)解决方案,而不是要求澄清。可以对其进行扩展和改进,以解释OP为什么应该使用此选项,当然。添加了一些详细信息以更好地帮助OP。@AndyTurner再次说明,OP已经声明他知道JSON。@daniu那么答案就没有用了。但它仍然不是注释。我不想通过放置值然后序列化来创建实例。
try (ObjectInputStream in = new ObjectInputStream(getNetworkInStream())) {
MyClass received = (MyClass) in.readObject();
}