Oracle ADF:无法将类型为java.math.BigDecimal的类型1转换为类oracle.jbo.domain.Number

时间:2014-10-31 13:16:35

标签: java oracle-adf jdeveloper

这个问题看起来很愚蠢,但不是真的。 无法将类型java.math.BigDecimal中的1类型转换为类oracle.jbo.domain.Number

如何转换

  1. oracle.jbo.domain.Number into java.math.BigDecimal
  2. java.math.BigDecimal into oracle.jbo.domain.Number
  3. 我得到答案第一:

     oracle.jbo.domain.Number value = (Number)valueChangeEvent.getNewValue();
     java.math.BigDecimal costOfBuildingValue = value.bigDecimalValue();
    

    第二名?

2 个答案:

答案 0 :(得分:2)

您可以通过两种方式使用数字的String表示形式:

oracle.jbo.domain.Number number = new oracle.jbo.domain.Number(12345);
BigDecimal bigDecimal = new BigDecimal(number.toString());

反之亦然:

BigDecimal bigDecimal = new BigDecimal(1241241);
oracle.jbo.domain.Number number = new oracle.jbo.domain.Number(bigDecimal.toString());

更好的是,如果你签出javadoc,你会发现那里有一个Number(BigDecimal bigDecimal)构造函数:

BigDecimal bigDecimal = new BigDecimal(1241241);
oracle.jbo.domain.Number number = new oracle.jbo.domain.Number(bigDecimal);

请注意,我使用oracle.jbo.domain.Number的完全限定类名称,以避免与java.lang.Number界面混淆。

答案 1 :(得分:1)

按如下方式创建新的Number

BigDecimal value = new BigDecimal(...);
Number costOfBuildingNumber = new Number(value);