给定某种类型的文档对象模型,其中包含类似int getInt(String col), getFloat, getString, getDate, etc.
的方法,以及类干枯的纯公共字段或公共设置程序(如setName(String), setAge(int), etc.
)我想将我的文档记录映射到指定的Java类型。Java将对象模型映射到类
我已经看到,在运行时只使用MyRecordObject.class
就可以完成各种大型JSON,SQL等库的工作,没有编译时代码使用任何类型的模式文件。
但是这是如何实现的? Java是否具有用于表示DOM /记录结构并将其映射到特定Java类的某种低级接口?
//to create something like this
Record record = readRecordFromMyGenericFileFormat();
TodoItem todo = record.as(TodoItem.class);
对于其中一些库,您可以查看[源代码](https://github.com/google/gson/blob/master/gson/src/main/java/com/google/gson/Gson.java )。但这很可能是通过反思完成的。即查看json的键名,并在传递的类中查找相应的字段。 –
不是将DOM映射到对象,而是考虑将DOM的源映射到对象,或许将XML映射到对象。 – DwB
不幸的是,我们不能控制源代码,它由一些企业库提供了大量的遗留代码(以及大约六层转换,网络传输等)。我可以将它转换为JSON/XML,然后将其映射回去,但这看起来很浪费,而且我不可能在过去的代码审查中获得过去的代码审查,即使是100年代的手动'todo.setDate(record.getDate(“date”))', –