java - IntelliJ 14 + Lombok 插件 + @Builder = 错误

标签 java intellij-idea lombok

我的 IntelliJ 14 和 Lombok 注释“@Builder”有问题。

我有一些类(class):

@Getter
@Builder
public class TransactionFilter {
      private String name;
      private ProductType product;
      ...

      public static TransactionFilterBuilder defaultBuilder() {
         TransactionFilterBuilder builder = builder();
         builder.product(ProductType.DEFAULT);
         return builder;
      }
}

我正在尝试在另一个类中使用它生成的构建器:

import org.---.TransactionFilter.TransactionFilterBuilder;

public class Foo {
   public void boo() {
      TransactionFilterBuilder filterBuilder;
      ...
   }
}

在这两个类中我都有一些错误

在使用 Java 1.6 编译时出现错误:

TransactionFilter java:26: cannot find symbol
symbol  : class TransactionFilterBuilder
location: class org.---.TransactionFilterBuilder

我的工具提示还说在第 26 行我有不兼容的类型:
必需:org.---.TransactionFilter.TransactionFilterBuilder
找到:org.---.TransactionFilter.TransactionFilterBuilder
我猜这第二个错误是插件缺陷,并不重要。

环境:

  • 0.9.1 - Lombok 插件版本
  • 14.0.3 社区 - IntelliJ IDEA 版本
  • Java 1.6.0_31或Java 1.6.0_45(项目需要Java 1.6)
  • lombock.jar 包含在类路径中
  • Compiler -> Annotation Processors 设置为“Enable annotation processing”

在其他情况下,我的 lombok 插件工作正常。同样在 Eclipse 下,此示例也会编译。 但是当我使用 IDEA 时,“@Builder”失败了。
我是我团队中唯一使用 IntelliJ 的人,我不想回到 Eclipse :(。
有人遇到过这个问题吗?
有人可以帮助我吗?

最佳答案

我试着用一些不同的设置来重现:

  • Java 8
  • Lombok 版本 1.16.2
  • Lombok 插件 0.9.1
  • Gradle 2.3

我的代码运行良好。我遇到的唯一问题是以下 IntelliJ 错误:

code

我想这可能是一些插件问题,因为编译没有任何问题。这可能会有所帮助,我使用 gradle build task 进行编译。

@Getter
@Builder
public class Foo {
    private String foo;

    public static FooBuilder fooBuilder(String foo) {
        FooBuilder builder = builder();
        builder.foo(foo);
        return builder;
    }

}

public class Bar {
    public static void main(String[] args) {
        Foo foo = Foo.fooBuilder("foo").build();
        System.out.println(foo.getFoo());
    }
}

apply plugin: 'java'

sourceCompatibility = 1.8
version = '1.0'

repositories {
    mavenCentral()
}

configurations {
    provided
    compile.extendsFrom provided
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'
    provided 'org.projectlombok:lombok:1.16.2'
}

关于java - IntelliJ 14 + Lombok 插件 + @Builder = 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29165157/

相关文章:

java - MYSQL数据库很多连接问题

java - 如何获取子串的位置

java - 如何在 Intellij 构建上生成 jaxb2 类?

scala - 类型安全配置库在 Intellij Scala 工作表中不可用

intellij-idea - 使用kotlin-to-js转译器时获得热插拔功能的最简单方法是?

hashcode - Lombok.hashCode 问题为 "java.lang.StackOverflowError: null"

java - lombok 调用默认构建器的子类函数

java - Tomcat:配置 VM 属性

java - 使用 switch 语句时如何忽略大小写

java - lombok常量需要mvn安装