Java将对象模型映射到类

时间:2016-08-04 10:54:04

标签: java serialization

给定某种带有int getInt(String col), getFloat, getString, getDate, etc.等方法的文档对象模型,并且类要么是普通的公共字段,要么是公共设置者,例如setName(String), setAge(int), etc.,我想将我的文档记录映射到指定的Java类型。

我已经看到这样做了各种大型JSON,SQL等库,只是在运行时说MyRecordObject.class,没有编译时代码使用任何类型的模式文件。

但这是如何实施的? Java是否有某种低级接口来表示DOM /记录结构并将其映射到特定的Java类?

//to create something like this
Record record = readRecordFromMyGenericFileFormat();
TodoItem todo = record.as(TodoItem.class);

1 个答案:

答案 0 :(得分:0)

一般的想法是使用反射来动态设置类实例中字段的值。

Apache BeanUtils可能会有用,为您省去一些麻烦。 Example

 Employee employee = ...;
 PropertyUtils.setSimpleProperty(employee, "firstName", firstNameValue);
 PropertyUtils.setSimpleProperty(employee, "lastName", lastNameValue);

您必须从通用文件格式中提取字段名称("firstName")和值(firstNameValue)。

如果您的文件格式中没有字段名称信息,那么通过反射动态获取字段可能适用于您的用例。 Java Reflection在线有多个高质量的教程。