我的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
我猜第二个错误是插件缺陷,并不重要。
在其他情况下,我的lombok插件工作正常。同样在Eclipse下,这个例子也可以编译。
但是,当我使用IDEA" @ Builder"失败。
我是唯一一个在我的团队中使用IntelliJ但我不想回到Eclipse的人:(。
有人有这个问题吗?
有人能帮助我吗?
答案 0 :(得分:0)
我尝试使用不同的设置重现:
我的代码工作正常。我遇到的唯一问题是遵循IntelliJ错误:
我想这可能是一些插件问题,因为编译没有任何问题。它可能有用,我使用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的问题已知,不会修复。