1、 错误:java.lang.ClassCastException, 强制类型转换错误。
我遇到的问题改成个demo
(List<E>) map.get(a); // key为a的value是List类,正常强转
map.put(a,"xx") ; // key为a的value变成了String
(List<E>)map.get(a); //异常
①、③行同样代码,但3出错,因为key为a的值类型变了,强转失败。
2、NoSuchFieldError
项目运行时,改方法内语句不用重启编译,改了方法名和类(实质.class文件变了)必须重启。
我改了一个枚举, 加了一个lastactionlog("lastactionlog")
public enum RESERVED_WORD{
lastactionlog("lastactionlog"),logList("logList");
}
这个不算改方法内语句,属于改“类”,枚举是一个特殊的类,改动后需要重新启动。
不然无法使用RESERVED_WORD.lastactionlog,会报: Caused by: java.lang.NoSuchFieldError:lastactionlog。就是说找不到字段lastactionlog,因为没编译呢。
需要重启时,可以看到debug窗口有提示may be out of synch,一般是编译的.class文件改变了。
alt="两个后台报错ClassCastException、NoSuchFieldError:" >