@Groovy 2.3.0中的生成器
我正在尝试使用IntelliJ Idea 13.1.1运行上显示的简单@Builder示例 创建了一个香草groovy项目并粘贴了代码后,我在Person类上声明@Builder时收到以下警告:@Groovy 2.3.0中的生成器,groovy,intellij-idea,Groovy,Intellij Idea,我正在尝试使用IntelliJ Idea 13.1.1运行上显示的简单@Builder示例 创建了一个香草groovy项目并粘贴了代码后,我在Person类上声明@Builder时收到以下警告: 缺少的属性:forClass、前缀、builderClassName、buildMethodName、builderMethodName (基本上是所有没有默认值的属性。) IDE也没有看到默认情况下应该添加到Person类的builder()方法,这表明没有应用AST 当脚本实际执行时,其行为符合预期
缺少的属性:forClass、前缀、builderClassName、buildMethodName、builderMethodName
(基本上是所有没有默认值的属性。)
IDE也没有看到默认情况下应该添加到Person类的builder()
方法,这表明没有应用AST
当脚本实际执行时,其行为符合预期。那么为什么我会在IDE中看到这些错误呢
更新:
如果尝试从Gradle构建,则在groovy编译期间会出现以下错误:
无法加载builderStrategy'groovy.transform.builder.DefaultStrategy'java.lang.ClassCastException:groovy.transform.builder.DefaultStrategy无法强制转换为org.codehaus.groovy.transform.builderasTransformation$builderStrategy
@第3行第1列。
@建筑商
如果我尝试切换到SimpleStrategy而不是DefaultStrategy,我会得到:
@builder上的builderStrategy类groovy.transform.builder.SimpleStrategy不是一个builderStrategy
@第4行第1列。
@构建器(builderStrategy=SimpleStrategy)IntelliJ不构建/考虑Groovy AST。(这将是脆弱和缓慢的。)因此,除非有人向IntelliJ添加对
@Builder
的支持,否则IntelliJ不会理解它。我建议提交一个功能请求
在@Builder
实现中,已将@Builder
和Gradle的问题标识为错误。请看我的答案
更新:Groovy bug归档已通过Groovy 2.3.2版解决