Kotlin 看不到 Java Lombok 访问器?

2024-03-07

使用 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(使用前将#替换为@)

Kotlin 看不到 Java Lombok 访问器? 的相关文章

随机推荐

  • 更改 Xamarin 中格式化文本的字体

    我有一个带有格式化文本的标签 我想更改其字体样式 我的意思是字体 我尝试使用自定义标签渲染 就像对普通文本一样 但它没有得到反映 我的疑问是我们是否可以更改格式化文本的字体 因为它对于标签的文本 非格式化文本 工作正常 这是我的 xaml
  • 检查“组件”的渲染方法

    我正在尝试按照指南设置一个react router dom高阶组件 我有个问题说 元素类型无效 需要一个字符串 对于内置组件 或一个类 函数 对于复合组件 但得到 对象 您可能忘记从定义它的文件中导出组件 或者您可能混淆了默认导入和命名导入
  • jQuery:从文件系统读取文本文件

    我正在尝试使用 jquery 读取文本文件 如下所示 LOAD file and split line by line and append divs get myFile txt function data var lines data
  • 获取最近 7 天的日期

    我想获取从现在起过去 7 天的日期 例如当前日期是 02 10 2016 像这样获取 7 天的日期 01 10 2016 30 09 2016 29 09 2016 28 09 2016 27 09 2016 26 09 2016 My c
  • Java Servlet URL 映射

    我对java servlet相当陌生 如果这个问题看起来很愚蠢 请原谅我 我在 web xml servlet 选项卡中使用 netbeans 添加了 servlet 映射 例如 servlet 类和 url 模式 但是当应用程序运行时 它
  • 在 Firebase 函数中过滤数据

    如何找到 myPhone 的 users key 值 其值 123 我尝试过的 let usersRef admin database ref users usersRef orderByChild myPhone equalTo 123
  • 如何实现历史版本控制?

    我们正处于在 SQL 2008 R2 上构建大型 C MVC2 应用程序 我们还采用 Sharp 架构和 Nhibernate 作为生态系统的一部分 的早期阶段 其中一个要求是在给定的时间内可以访问所有数据库行版本 历史 我们尝试过类似以下
  • Meyers Singleton 与 C++-98 线程安全

    目前我有迈耶单例的实现 class ClassA public static ClassA GetInstance static ClassA instance return instance private ClassA ClassA a
  • 将 Robolectric 与 SQLiteAssetHelper 结合使用

    我对 Robolectric 很陌生 所以如果我在这里遗漏了一些明显的东西 请提前道歉 我有一个从以下位置加载数据库的应用程序assets目录使用SQLite资产助手 https github com jgilfelt android sq
  • 对合法程序进行反病毒检测

    基本上 我的程序与另一个 jar 文件一起运行 下面是下载功能的代码 public void saveUrl final String filename final String urlString throws MalformedURLE
  • git: 'credential-osxkeychain' 不是 git 命令。请参阅“git --help”

    我与 bitbucket 连接 并在计算机中安装了 Git 和 sourcetree 然后尝试将 sourcetree 和 bitbucket 连接在一起 但我无法连接两者 当我尝试克隆存储库源路径时 它说 this is not a va
  • GWT RootPanel 与 RootLayoutPanel

    据我了解 GWT 官方建议使用较新的 RootLayoutPanel 但互联网上的一些帖子声称 对于某些 Web 应用程序 最好使用 RootPanel 如何决定使用哪一个 每个都有不同的用例吗 或者每个要求都可以满足 RootLayout
  • 如何使用 apache poi 从 .docx 文档中获取图片和表格?

    亲爱的 我尝试将整个文档从 docx 文件提取到 java 中的文本区域 但我只收到没有图像或表格的文本 所以有什么建议吗 提前致谢 我的代码是 try JFileChooser chooser new JFileChooser choos
  • Angular 2在第一次路由之前调用初始函数

    我有一个应用程序 我想在实际加载应用程序之前加载来自服务器的所有消息 我已将 http 请求放入 OnInit 中的应用程序组件中 但我没有办法让路由在获取第一页之前 等待 并且应用程序以空消息启动 有办法做到这一点吗 您可以使用APP I
  • 如何在Android中自定义共享意图(这是可能的)

    一直以来 我认为在 Android 中自定义共享意图是不可能的 如何在Android中自定义共享意图 https stackoverflow com questions 6827407 how to customize share inte
  • 我们如何在java中关闭hsqldb数据库

    我使用 hsqldb 作为我的数据库 我希望每当我的选择查询 更新查询执行时它都会关闭数据库 下面是我需要一个代码来手动关闭数据库的方法 private void insertInitData BasicDataSource dataSou
  • ActivityMonitor getHits() 不起作用

    我尝试过这个测试 但 getHits 总是返回 0 任何人都可以帮助我吗 public void testSettingsAboutShazamClickOnLink Instrumentation inst getInstrumentat
  • Vue2-leaflet 使用 ES 模块来减少包大小

    我正在使用 Vue cli 2 并导入 Vue2 leaflet 模块LMap LTileLayer 在我的 main js 中 import LMap LTileLayer from vue2 leaflet 通过使用 webpack b
  • Magento 付款:additional_information 或 payment 属性?

    我想知道在 magento 1 4 1 1 中向付款添加一些信息的更好方法是什么 假设我想添加一个名为 payment duedate 的信息 这是客户必须支付发票的日期 实际上 sales flat order payment 中有一个名
  • Kotlin 看不到 Java Lombok 访问器?

    使用 Kotlin 1 0 0 版本 在 IntelliJ 15 中编译 println myPojoInstance foo 当它尝试编译引用基于 Lombok 的 POJO 的代码 在 IntelliJ 或 Gradle 中 时 它会给