public class ConstUtil {
/**
* 週中文常量
*/
public final static Map<Integer, String> WEEK = new HashMap<Integer, String>() {
/**
*
*/
private static final long serialVersionUID = 1L;
{
put(1, "星期天");
put(2, "星期一");
put(3, "星期二");
put(4, "星期三");
put(5, "星期四");
put(6, "星期五");
put(7, "星期六");
}
};
/**
* 變更紀錄類型
*/
public final static Map<String,String> content=new HashMap<String,String>()
{
private static final long serialVersionUID = 1L;
{
put("0", "姓名");
put("1","手機號碼");
put("2","主部門");
put("3","從屬部門");
put("4","職位");
put("5","工作職責");
put("6","崗位類型");
put("7","崗位級別");
}
};
/**
* 可用於對比的字符串字段
*/
public final static Map<String,String> changeContent=new HashMap<String,String>()
{
private static final long serialVersionUID = 1L;
{
put("0", "fullname");
put("1","mobile");
put("4","position");
put("5","jobDutyName");
put("6","positionTypeName");
put("7","positionLevelName");
}
};
}
最近在進行公司項目功能開發的時候,遇到了一個問題,就是服務器報500,檢查日誌後發現是NoClassDefFoundError的錯誤。錯誤中涉及到的類便是上述類,咋一看這個類有些不一樣的地方:類裏面定義的三個hashMap的寫法我之前也是沒有見過。前往編譯後的文件發現如下圖所示,該類被編譯爲四個.class文件。這也正是我遇到的這個NoClassDefFoundError錯誤拋出的原因,我只上傳了ConstUtil.class文件,另外三個沒有上傳。分析後發現,另外三個class文件其實是上述類中的三個map編譯後的,如果沒有上傳,當使用到的時候自然就會拋出NoClassDefFoundError錯誤,把另外三個class也上傳到服務器就解決啦。
不過根據在網上看到的,造成NoClassDefFoundError異常的原因可不止這一個喔。另外此錯誤常與ClassNotFoundException做對比,兩者最大的區別就是前者是Error,後者是異常
本篇博客寫到這裏也就結束了了,感謝大家的閱讀,歡迎大家訪問本人視頻網站使用吐槽牆功能及音樂網站。我在這兒等着你們。
最新重磅推薦:哆啦鬧鈴-電腦工作者必備工具