程序中有段代碼以前運行正常,JDK升級到1.8以後發現數據不顯示,debug後發下下面語句運行不對:
if (parentMenu.getMenuId() == childMenu.getParentId())
改成下面這樣才能正確運行:
if (parentMenu.getMenuId().equals(childMenu.getParentId()))
原因是數據爲Long型,跟String一樣得用equals()方法才能判斷是否一致。可能是1.8版本以後對數據驗證變嚴格了。程序中有段代碼以前運行正常,JDK升級到1.8以後發現數據不顯示,debug後發下下面語句運行不對:
if (parentMenu.getMenuId() == childMenu.getParentId())
改成下面這樣才能正確運行:
if (parentMenu.getMenuId().equals(childMenu.getParentId()))
原因是數據爲Long型,跟String一樣得用equals()方法才能判斷是否一致。可能是1.8版本以後對數據驗證變嚴格了。ThreadLocal的使用,,,實際上相當於維護了一個Map,其中以鍵值對的形式,存儲了某一個數據被多個線程訪問所對應的值。當然這個數據只能有
JSONArray序列化日期最初用到, 這個是全局設置,會有風險。 String[] dateFormats = new String[] {"yyyyMMdd"}; JSONUtils.getM