BigDecimal累加无效问题

错误写法

 //订单金额
	BigDecimal orderAmount = new BigDecimal(0);
	 for (Object o : dayPriceDtos) {
	     JSONObject obj = JSONObject.parseObject(o.toString());
	     //每日房价累加
	     orderAmount.add(obj.getBigDecimal("roomPrice"));
	 }

问题:这样累加会导致orderAmount的值为0,累计无效

正确写法

 //订单金额
	BigDecimal orderAmount = new BigDecimal(0);
	 for (Object o : dayPriceDtos) {
	     JSONObject obj = JSONObject.parseObject(o.toString());
	     //每日房价累加
	     orderAmount = orderAmount.add(obj.getBigDecimal("roomPrice"));
	 }

原理:据说是因为 bigDecimal作为参数传入一个方法中,比如add(),累加之后返回的是一个新的对象,跟方法外部定义的BigDecimal对象不是同一个。重新赋值,覆盖掉就好了。