Lombok 不生成 RequiredArgsConstructor 和 AllArgsConstructor
Lombok does not generate RequiredArgsConstructor and AllArgsConstructor
我正在使用 Lombok 1.16.18 和 Gradle 4.0 以及 Java 8 和 Spring-Boot 1.5.9.RELEASE.
当我构建并 运行 项目时它成功了,但是当调用包含自动装配的服务时它失败并出现 NullPointerException 使用
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
或 @AllArgsConstructor(onConstructor = @__(@Autowired))
。
我检查了生成的 .classes,它们缺少构造函数。
当然,如果我手动创建构造函数并将 @Autowire
放在上面,它就可以工作。但是我正在做一个有很多现有代码的大项目,不想重写所有的东西。关于为什么会发生这种情况的任何想法?看起来 gradle 或 lombok 没有预处理这些注释,但是所有其他 @Getter
和 @Setter
等都工作正常并且生成的 .class 文件包含它们。 .
我使用构造函数注入只定义 @RequiredArgsConstructor
和 final
成员变量如下(不使用 onConstructor
)
@Repository
@Slf4j
@RequiredArgsConstructor
public class FieldRepository {
private final DSLContext dsl;
private final DataSource dataSource;
//... dsl and datasource are correctly injected
}
我正在使用 Lombok 1.16.18 和 Gradle 4.0 以及 Java 8 和 Spring-Boot 1.5.9.RELEASE.
当我构建并 运行 项目时它成功了,但是当调用包含自动装配的服务时它失败并出现 NullPointerException 使用
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
或 @AllArgsConstructor(onConstructor = @__(@Autowired))
。
我检查了生成的 .classes,它们缺少构造函数。
当然,如果我手动创建构造函数并将 @Autowire
放在上面,它就可以工作。但是我正在做一个有很多现有代码的大项目,不想重写所有的东西。关于为什么会发生这种情况的任何想法?看起来 gradle 或 lombok 没有预处理这些注释,但是所有其他 @Getter
和 @Setter
等都工作正常并且生成的 .class 文件包含它们。 .
我使用构造函数注入只定义 @RequiredArgsConstructor
和 final
成员变量如下(不使用 onConstructor
)
@Repository
@Slf4j
@RequiredArgsConstructor
public class FieldRepository {
private final DSLContext dsl;
private final DataSource dataSource;
//... dsl and datasource are correctly injected
}