返回枚舉類型
最近在用別的項目提供的jar包,由於對方的更新導致原本沒問題的接口返回了下面的錯誤:
這個接口是我feign調用別的項目,從報錯信息可以看到是因為json反序列化失敗,枚舉類不一致導致的。
原因是:兩方引用了共同的common jar包,升級之后,那邊引用了新的,返回了新的枚舉類型,我這邊沒升級導致的。
這個問題雖然后續通過引用新jar解決了,但是我記得在阿里開發規范內不允許在返回類內用枚舉,然后果然找到了這一條:
哎,但是無奈對方,嗯~ o( ̄▽ ̄)o
序列化is方法
然后,前面的問題解決了,調用之后又爆了一個bug:
截圖找不到了~~
具體就是又找不到一個屬性,然后反編譯類查看jar包確實沒有這個屬性,然后在類里面搜索這個屬性,結果發現了這個方法:
isSuccess();
(╯‵□′)╯︵┻━┻
然后我為了確認,還寫了個demo,
來,我們看下源碼:
因為我們是is方法序列化的問題,所以進到_addMethod()方法
可以看到循環了6個方法,進到_addGetterMethod方法內
到這里就可以看到為什么is開頭而且是boolean類型了
tips:
jackson針對這個其實是有一個配置來關閉此類場景
mapper.configure(MapperFeature.AUTO_DETECT_IS_GETTERS, false);
總結:請提高自身能力,減少周圍的傻X