final Double[] lessPrice = {0.00}; map.forEach((s, aDouble) -> { SaleEvent one = eventService.getById(s); Double total = one.getGeTotal(); if (aDouble>=total){ lessPrice[0] +=one.getLessPrice(); } }); double r=0.00; if (lessPrice[0]>0){ r = price - lessPrice[0];//折扣后的总金额 }else { return price; } r = Double.parseDouble(String.format("%.2f",r)); return r;解析该段每句代码
时间: 2023-06-19 10:06:58 浏览: 55
这段代码是一个方法,其返回值为一个double类型的数值。以下是每句代码的解析:
1. `final Double[] lessPrice = {0.00};`:定义一个Double类型的数组lessPrice并将其初始化为0.00。
2. `map.forEach((s, aDouble) -> { ... });`:对于一个Map对象map中的每个键值对,执行花括号内的操作。其中,s代表键,aDouble代表值。
3. `SaleEvent one = eventService.getById(s);`:根据键s从数据库中获取一个SaleEvent对象。
4. `Double total = one.getGeTotal();`:从SaleEvent对象中获取geTotal属性,并将其赋值给变量total。
5. `if (aDouble>=total){ ... }`:如果值aDouble大于等于变量total,则执行花括号内的操作。
6. `lessPrice[0] +=one.getLessPrice();`:将数组lessPrice的第一个元素加上SaleEvent对象的lessPrice属性。
7. `double r=0.00;`:定义一个double类型的变量r,并将其初始化为0.00。
8. `if (lessPrice[0]>0){ ... }`:如果数组lessPrice的第一个元素大于0,则执行花括号内的操作。
9. `r = price - lessPrice[0];`:将变量r的值设为price减去数组lessPrice的第一个元素,即折扣后的总金额。
10. `}else { return price; }`:如果数组lessPrice的第一个元素小于等于0,则直接返回原价price。
11. `r = Double.parseDouble(String.format("%.2f",r));`:将变量r的值转换为保留两位小数的double类型。
12. `return r;`:返回变量r的值作为方法的返回值。