Groovy:无法强制转换对象';空';类';空';到类';双倍';。试试';java.lang.Double';相反

Groovy:无法强制转换对象';空';类';空';到类';双倍';。试试';java.lang.Double';相反,java,groovy,Java,Groovy,我为一个只接受groovy进行定制的系统编写了这段代码,但每次我尝试提交表单时,它都会返回以下错误: 无法将类为“null”的对象“null”强制转换为类为“double”。请改为使用“java.lang.Double” 试试看{ double valorOriginal=(double)fieldChanges.getFieldChange(MetafieldIdFactory.valueOf(“customFlexFields.rateCustomDFF\u rate\u amount\u

我为一个只接受groovy进行定制的系统编写了这段代码,但每次我尝试提交表单时,它都会返回以下错误:

无法将类为“null”的对象“null”强制转换为类为“double”。请改为使用“java.lang.Double”

试试看{
double valorOriginal=(double)fieldChanges.getFieldChange(MetafieldIdFactory.valueOf(“customFlexFields.rateCustomDFF\u rate\u amount\u original”)?.newValue;
double porcentagem=(double)fieldChanges.getFieldChange(MetafieldIdFactory.valueOf(“customFlexFields.rateCustomDFF_descon_percentual”)?.newValue;
double rateAmount=fieldChanges.getFieldChange(MetafieldIdFactory.valueOf(“rateAmount”))?.newValue;
布尔FlagDescon=(布尔)fieldChanges.getFieldChange(MetafieldIdFactory.valueOf(“customFlexFields.rateCustomDFF_flag_Descon_percentual”)?.newValue;
如果(陶瓷宝石>=100)
抛出BizFailure.createProgrammingFailure(“描述nao pode ser igual ou superior a 100!”);

如果(valorOriginal==null | | valorOriginal double是一个基元类型。基元类型不能像stultuske说的那样为null。请尝试使用
double
而不是
double
try {
    double valorOriginal = (double) fieldChanges.getFieldChange(MetafieldIdFactory.valueOf("customFlexFields.rateCustomDFF_rate_amount_original"))?.newValue;
    double porcentagem = (double) fieldChanges.getFieldChange(MetafieldIdFactory.valueOf("customFlexFields.rateCustomDFF_desconto_percentual"))?.newValue;
    double rateAmount = fieldChanges.getFieldChange(MetafieldIdFactory.valueOf("rateAmount"))?.newValue;
    boolean flagDesconto = (boolean) fieldChanges.getFieldChange(MetafieldIdFactory.valueOf("customFlexFields.rateCustomDFF_flag_desconto_percentual"))?.newValue;

    if (porcentagem >= 100)
        throw BizFailure.createProgrammingFailure("Desconto nao pode ser igual ou superior a 100!");
    if (valorOriginal == null || valorOriginal <= 0)
        throw BizFailure.createProgrammingFailure("Favor informar o valor original");

    if(flagDesconto == true){
        rateAmount = valorOriginal - (valorOriginal * porcentagem)/100;
    }
}catch(Exception ex){
    throw BizFailure.createProgrammingFailure(ex.getMessage().toString());
}