Codenameone Bigdecimal在属性中解析为Double?

Codenameone Bigdecimal在属性中解析为Double?,codenameone,Codenameone,我正在重写我的一个应用程序的核心,其中一个主要变化是将我的实体迁移到PropertyBusinessObjects 我编写了一个小工具,从我的服务器端jpaenties编写PropertyBusinessObjects,以限制愚蠢的复制粘贴所花费的时间,并利用我的工作负载,因此几乎所有CN1实体都被重写为PBO 为了不重写使用经典getter/setters的所有代码,我在生成代码中添加了创建伪getter/setters,以获得这种结果: protected Property<Strin

我正在重写我的一个应用程序的核心,其中一个主要变化是将我的实体迁移到
PropertyBusinessObjects

我编写了一个小工具,从我的服务器端
jpaenties
编写
PropertyBusinessObjects
,以限制愚蠢的复制粘贴所花费的时间,并利用我的工作负载,因此几乎所有CN1实体都被重写为PBO

为了不重写使用
经典getter/setters
的所有代码,我在生成代码中添加了创建
伪getter/setters
,以获得这种结果:

protected Property<String, Product> reference = new Property<>("reference");
public String getReference() {
    return this.reference.get();
}

public void setReference(String reference) {
    this.reference.set(reference);
}

有什么想法或线索可以解决这个问题吗?

在属性中解析/放置
BigDecimal
biginger
没有逻辑。这可能是我们将来应该添加的内容,但是作为一种解决方法,我们有一种通用的扩展机制,可以让您自定义此代码

我还没有尝试过这一点,但它通常会起作用:

MapAdapter m = new MapAdapter(BigDecimal.class) {
    public void placeInMap(PropertyBase b, Map m) {
        // this might be unnecessary
        m.put(b.getName(), b.get());
    }

    public void setFromMap(PropertyBase b, Map m){
        long d = (long)(m.get(b.getName()) * 10000);

        b.setImpl(new BigDecimal(new BigInteger(d), 5));
    }
};

谢谢Shai,我忘了我已经在另一个应用程序中使用了枚举属性。它在读取数据时工作良好,我还没有尝试过编写json,但它也应该工作,如果不工作,我知道在哪里对代码进行微调。
MapAdapter m = new MapAdapter(BigDecimal.class) {
    public void placeInMap(PropertyBase b, Map m) {
        // this might be unnecessary
        m.put(b.getName(), b.get());
    }

    public void setFromMap(PropertyBase b, Map m){
        long d = (long)(m.get(b.getName()) * 10000);

        b.setImpl(new BigDecimal(new BigInteger(d), 5));
    }
};