问题描述:
The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files
一般会在包package的左边出现一个小红叉,这个问题困扰了我好久,逐一排查,没有发现问题,上网上看,说的都是环境的问题什么jdk版本升级、降级,发现都在混淆视听,不起任何作用。
陷入一个死局,后来我用一种很笨的办法,一行一行的添加代码,看看到底是那一步报错了。最终有了收获:
原来我在一个字符串(String类型)拼接中使用了一个三目运算符:
str+=( i == list.size() ? i : i+",");
就是这个表达式了,我这时候觉得应该是类型不匹配的原因,于是我修改成了:
str+=( i == list.size() ? ""+i : ""+i+",");
结果正常了,不报错了,哈哈,喜大普奔!
总结一下,这是一个隐式转换的问题。字符串拼接的时候,如果拼接的也是字符串,那么没有问题,如过是其他数据类型,那就要注意一下了。最好的处理方法就是上面我的写法,加一个前缀,从而规避掉这个问题。