写代码时遇到一个小问题,在switch 的case分支上引用常量报错,其实是自己犯的一个低级的错,原因是我常量定义没有加final。另外我也会掉的一个坑,字符串比较为了使代码阅读性高点,也会使用switch,写的时候完全不报红,编译也不报错,一运行就是一堆的ANR Log,而且在Android Studio里面打印出的错误日志还飞快给覆盖掉了,看的我也是一脸懵,最后是用adb logcat >D:log.txt 抓取日志才定位到原来是switch语法错误。
另外在其他人的博客中发现当我们在Android依赖库中使用switch-case语句访问资源ID时也会报错,原因是case分支后面跟的参数必须是常数,换句话说出现这个问题的原因是Android library中生成的R.java中的资源ID不是常数(不过目前还没遇到过)。