我想编组和取消编组我的类对象列表,例如java.util.List<MyObject>。我打算为此使用Castor,但必须使用Castor-0.9.5。*。jar版本。

另外,我有Marshaled对象(MyObject)的XML模式。 MyObject类没有默认的构造函数,它仅具有参数化的构造函数,该构造函数设置所有字段。而且MyObject类中的任何字段都没有设置方法。我根本无法修改MyObject类。

这是MyObject类的代码段:

public class MyObject
{
    private final SomeEnumType type;
    private final CutomObject custObjs[];
    private final int index;
    private final String[] strs;
    private final int rows[];

    // NOTE: This class also has getter methods for all the fields.
    // NOTE: There are NO setters methods and all fields are final

    public MyObject(SomeEnumType type, CutomObject custObjs[],
                    int index, String strs[], int rows[])
    {
        this.type = type;
        this.custObjs = custObjs;
        this.index = index;
        this.strs = strs;
        this.rows = rows;
    }

}


我的问题是:


Castor是否适合这种情况?如果没有,更好的选择是什么?
在我的案例中,如何创建Castor映射。我尝试为此使用O2XMapper,但由于MyObject类没有默认构造函数而无法使用?
有没有一种方法可以使用MyObject的XML模式生成Castor映射。
我在蓖麻子罐中找不到org.exolab.castor.xml.XMLContextorg.castor.xml.BackwardCompatibilityContext类,它们不是蓖麻子罐的一部分吗?

最佳答案

我更喜欢使用jaxB,因为它重量轻,并且编组和拆组不会占用太多内存
click here for example

10-07 19:45