android - 房间找不到 lombok 生成的构造函数
问题描述
我正在使用 lombok 为我的模型生成构造函数、getter 和 setter。当我尝试使用 lombok 为我的实体类生成构造函数时,出现此错误
Error:(14, 8) error: Entities and Pojos must have a usable public
constructor. You can have an empty constructor or a constructor whose
parameters match the fields (by name and type).
Tried the following constructors but they failed to match:
Region(int,java.lang.String,java.lang.String) -> [param:arg0 -> matched
field:unmatched, param:arg1 -> matched field:unmatched, param:arg2 ->
matched field:unmatched]
但是手动编写构造函数是可行的。谁能帮我找出问题所在?
我的实体类如下所示
@Value
@Entity
public class Region {
@PrimaryKey
private int regionId;
private String name;
private String code;
}
房间版本:1.1.0 龙目岛版本:1.16.20
解决方案
匹配似乎失败了,因为构造函数参数名称在运行时不可用。由于版本 1.16.20 lombok 不再生成@ConstructorProperties
注释(将带有这些名称)。尝试添加lombok.anyConstructor.addConstructorProperties = true
到您的lombok.config
, lombok 将为您的构造函数生成@ConstructorProperties
注释。(有关如何配置 lombok 的详细信息,请参阅https://projectlombok.org/features/configuration 。)
编辑:问题是编译期间的注释处理。Room 和 lombok 都作为注释处理器钩入 javac,它们不能很好地结合使用。所以目前唯一稳定的办法就是先去delombok。
推荐阅读
- python - 通过 python3 requests.exceptions.SSLError 访问 phabricator 的问题
- html - 如何在 wcfm 多供应商插件中隐藏注册表单
- flutter - 如何使用 Flutter 验证应用内购买?
- python - 旋转正方形
- scrapy - 如何在scrapy中返回true/false的json布尔值
- python - 带有初始化类变量的 Python AttributeError
- r - 无法使用 ggplotly 转换 ggplot2
- html - 引导关闭画布高度到内容
- javascript - 如何正确使用 useEffect 与数组
- unity3d - 什么决定了 Unity 中 OnCollisionEnter(other) 的调用顺序?