gpt4 book ai didi

java - Lombok注解没有效果

转载 作者:行者123 更新时间:2023-11-30 02:00:58 25 4
gpt4 key购买 nike

我有一个 Spring Boot 应用程序 2.0.5.RELEASE,其版本 1.18.2 具有 lombok 依赖项 将 scope 设置为 provided

一个例子:

@RestController
@RequestMapping("/users")
@AllArgsConstructor
public class UserController {

private static final UserMapper mapper = Mappers.getMapper(UserMapper.class);

private UserRepository repository;//It's null, nothing gets injected

@GetMapping("/")
public ResponseEntity<List<UserDTO>> getUsers() {

final List<User> users = (List<User>) repository.findAll();

return new ResponseEntity<>(users.stream()
.map(mapper::toDto)
.collect(Collectors.toList()), HttpStatus.OK);
}
}

在这种情况下,我收到错误,因为 repository 字段为 null。当我删除 lombok @AllArgsConstructor 并直接放入时:

public UserController(UserRepository repository) {
this.repository = repository;
}

然后它就起作用了,一个正确的组件被注入(inject)到repository字段中。 UserDTO 类也有同样的情况。其定义为:

@Getter @Setter
public class UserDTO {

private int id;
private String firstName;
private String lastName;
}

Jackson 无法找到 getter 并引发异常。如果“正常”创建 getter(没有第 3 方库),则一切正常。

我做错了什么?为什么 lombok 没有生成它应该生成的东西?

最佳答案

我通过勾选“设置”->“编译器”->“注释处理器”中的“启用注释处理”复选框来修复此问题。

关于java - Lombok注解没有效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52838734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com