首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Castor映射数组

Castor映射数组
EN

Stack Overflow用户
提问于 2010-03-06 05:31:54
回答 1查看 1.2K关注 0票数 0

我有一个有构造函数的类:

代码语言:javascript
复制
public ContEmpirical(double xs[], double fs[]) {
    Check.check(xs.length == fs.length + 1 && fs.length > 0,
            "Empirical distribution array mismatch");
    this.xs = new double[xs.length];
    this.xs = xs;
    this.cs = new double[xs.length];
    double fTotal = 0.0;
    for (int i = 0; i < fs.length; i++)
        fTotal += fs[i];
    cs[0] = 0;
    for (int i = 0; i < fs.length; i++)
        cs[i + 1] = cs[i] + fs[i] / fTotal;
}

属性:

代码语言:javascript
复制
private double xs[], cs[];
    private double fs[]; // this attribute i added to make castors life easier since it always wants to map constructor arg to class attribute.

我拥有的映射文件是:

代码语言:javascript
复制
<class name="tools.ContEmpirical">
        <description xmlns="">
            Mapping for class tools.ContEmpirical
        </description>

        <map-to xml="ContEmpirical"/>

        <field name="xs" type="double" collection="array" set-method="%1" get-method="getXs" required="true">
          <bind-xml node="attribute"/>
        </field>

        <field name="fs" type="double" collection="array" set-method="%2" get-method="getFs" required="true">
          <bind-xml node="attribute"/>
        </field></class>

然而,当我尝试编组一个ContEmpirical实例时,我得到了这个XML:

代码语言:javascript
复制
<ContEmpirical xs="0.2 0.3 0.4 0.8"/>

当我真的应该得到这样的东西时:

代码语言:javascript
复制
<ContEmpirical xs="0.2 0.3 0.4 0.8" fs="0.2 0.3 0.4 0.8"/>

是不是我在映射中遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2010-03-07 00:45:07

你能发布ContEmpirical类吗?您是否将fs数组初始化为字段级别的某个值?

更新:我一定是漏掉了什么。您说过您“期望”输出xml中的fs。但是这个类是否有一个名为fs的属性呢?从您发布的构造函数代码中可以看出,fs从未在内部赋值(有一个名为fs的参数,用于计算cs)。

所以实际上,你的对象只有一个xs和cs变量,在你的xml中,如果你为cs声明了映射,你应该得到cs。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2390083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档