Eclipse中代码startsWith方法显示下划线原因问询
List days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"] List weekend = days.findAll { it.startsWith('S')} println days println weekend
上述为Groovy语法代码,startsWith方法下方出现下划线是Eclipse的静态语法校验异常导致的,具体原因如下:
- 文件类型匹配错误:如果当前文件后缀为
.java而非.groovy,Eclipse会调用Java语法规则校验代码。Java要求List显式指定泛型类型,未指定的情况下闭包中的it会被识别为Object类型,Object类不存在startsWith方法,因此会标记下划线提示方法不存在。 - 未安装Groovy开发插件:Eclipse原生不支持Groovy语法解析,若未安装Groovy Development Tools(GDT)插件,Eclipse无法识别Groovy的动态类型推导规则,无法判断
days列表内存储的均为String类型,因此无法识别it调用的startsWith方法。 - Groovy环境配置不匹配:若已安装GDT插件仍有该提示,可能是项目关联的Groovy编译器版本和插件支持版本不一致,或是项目未正确开启Groovy facet,触发了异常的校验规则。
该下划线仅为IDE静态校验的误报,只要确认运行环境配置正确,代码本身可以正常执行,不会受到影响。
内容的提问来源于stack exchange,提问作者walker
相关产品推荐
相关产品推荐

