1. 程式人生 > 其它 >記錄兩個Bug 1.FastJson 2.反射

記錄兩個Bug 1.FastJson 2.反射

1.使用FastJson 將一個物件轉成JSONObject 時 BigDecimal(整數,後面沒有帶0)變成了Integer

"10"--->10   
"10.1"-->"10.1"

解決方案:在BigDecimal的欄位上加上 @JSONField(serializeUsing = ToStringSerializer.class)

  1. 使用反射做bean物件的差異
    PropertyDescriptor pd = new PropertyDescriptor(field.getName(), compareObj);
    這一行不能使用在基本型別上 例如 int boolean ,不然會報錯
2022-12-12 10:08:44.955 DEBUG 6 --- [nio-7106-exec-6] o.s.data.mongodb.core.MongoTemplate      : findOne using query: { "couponTemplateId" : "123681276426989568" } fields: { } in db.collection: shippool.coupon-template

java.lang.reflect.UndeclaredThrowableException

	at com.icil.pinpal.coupon.service.impl.CouponServiceImpl$$EnhancerBySpringCGLIB$$a7832770.updateCouponTemplate(<generated>)

	at com.icil.pinpal.coupon.controller.CouponController.updateCouponTemplate(CouponController.java:159)

	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

	at java.lang.reflect.Method.invoke(Method.java:498)