我需要使用年龄对不同数据类型的 pojo 进行排序,例如学生、员工、患者,并将其存储到数组中。然后使用 beanio 将其写入平面文件。
通过json,我发送的请求可以包含学生、员工和患者的数组。我在java端有3个pojo,比如学生、员工、患者来存储来自json请求的数据。
我能够合并然后将所有对象数组(如学生、员工、患者)分类为单个类数组,该类是学生、员工、患者等人类的基类。我必须制作人类类,这样我就可以使用 Comparator 按属性年龄对所有 3 个子类进行排序。
class SortbyAge implements Comparator<Human>
{
// Used for sorting in ascending order of
// age
public int compare(Human a, Human b)
{
return a.getAge() - b.getAge();
}
}
到这里一切都很好。我能够根据年龄对数据进行排序并将其存储到 Human Array 中。
问题是当我使用 beanio 将排序数据写入平面文件时。
**当我将数据写入平面文件时,我收到异常以下的异常
org.beanio.BeanWriterException:Bean 识别失败:没有记录或组映射 bean 类 'class [Lcom.amex.ibm.model.Human;' 在当前位置**
我已将所有 4 个标签写入 xml 文件,如下所示。
<record name="student" class="com.amex.ibm.model.Student" occurs="0+" maxLength="unbounded">
<field name="name" length="3"/>
<field name="age" length="8"/>
<field name="address" length="15"/>
</record>
<record name="employee" class="com.amex.ibm.model.Employee" occurs="0+" maxLength="unbounded">
<field name="name" length="3"/>
<field name="age" length="8"/>
<field name="address" length="15"/>
</record>
<record name="patient" class="com.amex.ibm.model.Patient" occurs="0+" maxLength="unbounded">
<field name="name" length="3"/>
<field name="age" length="8"/>
<field name="address" length="15"/>
</record>
<record name="human" class="com.amex.ibm.model.Human" occurs="0+" maxLength="unbounded">
<field name="age" length="3"/>
</record>
如何在 bean IO 中定义父类映射?