java - 仅限 Apache avro 代码生成 POJO

标签 java serialization deserialization avro pojo

我想根据我的 Java 项目中先前定义的模式文件自动创建类。 为此,我使用了 Avro Maven 插件。

问题是生成的类不是纯 POJO 对象 - 在我的数据模型中也有我不想要的 avro 引用(希望保持简单):

import org.apache.avro.Schema;
import org.apache.avro.Schema.Parser;
import org.apache.avro.data.RecordBuilder;
import org.apache.avro.io.DatumReader;
import org.apache.avro.io.DatumWriter;
import org.apache.avro.specific.AvroGenerated;
import org.apache.avro.specific.SpecificData;
import org.apache.avro.specific.SpecificDatumReader;
import org.apache.avro.specific.SpecificDatumWriter;
import org.apache.avro.specific.SpecificRecord;
import org.apache.avro.specific.SpecificRecordBase;
import org.apache.avro.specific.SpecificRecordBuilderBase;

有没有办法只生成 POJO 对象?序列化/反序列化过程是否需要 avro 引用?

最佳答案

如果没有 avro 内容,则无法使用 avro maven 插件或 avro-tools.jar 生成 POJO。

这就是这些工具的工作方式,当然这些导入对于正常的序列化/反序列化来说不是必需的,所以如果不需要它们 - 最好的方法是使用其他一些库/插件来生成 POJO。

关于java - 仅限 Apache avro 代码生成 POJO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42788631/

相关文章:

java - java中ObjectInputStream中的IOException

延迟后的 Java EJB 调用方法

java - 如何从列表中删除整数?

java - JSoup 在网页上看不到表格

haskell - Haskell中如何实现多种外部格式的数据多态?

serialization - 在 React Native 中将 boolean 值存储/保存在 AsyncStorage 中

rust - 如何在 Rust 中使用 serde 为容器设置 "deserialize with"

java - 我在 android studio 中的位置有问题

java - 序列化一个可运行对象

python - 在Python中使用BSON将 float 组序列化/反序列化为二进制文件