红色代码str在这里表示没有定义此变量,即cannot resolve symbol ‘str’
错误信息结合生活例子
客户想要一箱青岛啤酒(相当于代码中的实际返回值String类型),
但是商家搞错了,放了一箱可乐给客户(相当于return str),
当核实信息人员检查商品与客户是否一一对应时,发现了此错误,所以向商家发出错误信息 —“客户想要的是啤酒,但是你给的却是可乐”,而核实人员并没有能力把可乐换成啤酒,核实信息人员只是起到一个核实信息的作用(相当于编译器报错,但是编译器并没有能力解决这种错误,编译器只有检查编译错误的功能)
总结
当编译器的报错信息中含有cannot resolve ……字段时,这种错误是人为的,也是编译器无法解决的。通常最多的情况为以下几种:
1. 出现没定义的变量 ,例如:
str没有定义,直接使用
2. 语法使用错误,例如:
参考cannot resolve construtor
需要传入User类型元素,但是实际传入的是String类型元素
再例如:
也是语法错误,test()方法返回的是void类型,而System.out.println()方法中没有刻意传入void类型的参数。编译器没法解决。
3. 没有导入相应的包,例如:
Date类是需要导入才可以使用
4. 关键字错误,例如:
static是关键字,不识别stati