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

时间:2015-03-20 11:11:16

标签: java intellij-idea lombok

我的IntelliJ 14和Lombok注释问题" @ Builder"。

我有一些课:

@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行,我有不兼容的类型:
    必需:组织.---。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包含在classpath
  • 编译器 - >注释处理器设置为"启用注释处理"

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

2 个答案:

答案 0 :(得分:0)

我尝试使用不同的设置重现:

  • Java 8
  • Lombok版本1.16.2
  • Lombok Plugin 0.9.1
  • Gradle 2.3

我的代码工作正常。我遇到的唯一问题是遵循IntelliJ错误:

code

我想这可能是一些插件问题,因为编译没有任何问题。它可能有用,我使用gradle构建任务进行编译。

@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'
}

答案 1 :(得分:0)

快速更新这个问题,前段时间我已经重新向插件的官方GitHub提出问题。
https://github.com/mplushnikov/lombok-intellij-plugin/issues/91
@Builder for Jdk 1.6的问题已知,不会修复。