使用 Kotlin 1.0.0 版本(在 IntelliJ 15 中编译)。
println(myPojoInstance.foo)
当它尝试编译引用基于 Lombok 的 POJO 的代码(在 IntelliJ 或 Gradle 中)时,它会给出错误“无法访问 'foo':它是“MyPojo”中的 'private'。这是真的,它们都是私有的并且是我的对象有 @Value @Builder 用于 lombok 注释。
我尝试专门调用 getFoo(),但它显示“未解析的 getFoo 引用”。也许有一些技巧可以让 Kotlin 知道如何处理 lombok 注释?
一般来说,不,不是。这种行为的原因是 Lombok 是 javac 的注释处理器,但是当 kotlin 编译器运行时,它也使用 javac,但没有注释处理,因此这就是 kotlin 看不到尚未生成的声明的原因。
目前唯一的解决方法是定义严格的编译顺序:首先是 Java,然后是 kotlin。不幸的是,这种方法有很大的缺点:在这种情况下,您无法使用 Java 中的 Kotlin 代码。要解决这个问题,您可能需要多模块项目,这可能会导致很多痛苦
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)