public static final MapDICT = new HashMap (16) { { put("A","1001"); put("B","1002"); put("C","1003"); put("D","1004"); put("E","1005"); } };
编译以后 在idea目录下只会显示一个 .class 文件
这是编译后的代码
public class test1 { public static final MapDICT = new HashMap (16) { { this.put("A", "1001"); this.put("B", "1002"); this.put("C", "1003"); this.put("D", "1004"); this.put("E", "1005"); } }; public test1() { } public static void main(String[] args) { String a = (String)DICT.get("A"); } }
idea目录下只会显示一个文件,而不会显示内部类的引用,在这记录一下。。。 因为生产上遇到一个问题 需要增加一个Map字典来做映射。
新增完Map字典以后,编译完成,将class文件放到生产
public static final MapDICT = new HashMap (16) { { put("A","1001"); put("B","1002"); put("C","1003"); put("D","1004"); put("E","1005"); } }; public static final Map DICT2 = new HashMap (16) { { // 新增的Map 字典 put("A","1001"); put("B","1002"); put("C","1003"); put("D","1004"); put("E","1005"); } }; public static void main(String[] args) { String a = DICT.get("A"); String a2 = DICT2.get("A"); }
因为第一次发版的时候 不用单独提class文件放到生产
编译完成以后 还是一个class文件,没有注意到内部类的情况,线上就报了一个错
Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: com.dto.test$4:method(I)V not found
提示找不到找不到元素,后来一想 我用了内部类,可能会生成多个文件,是不是没有都提上去,结果打开本地项目文件夹果然发现了几个引用文件。
将引用文件放到生产上 ,正常使用。
结论:自己的粗心,还有对 Java 基础不够深入。
在此记录一下这个粗心的问题。end
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)