java - 没有 kotlin 代码时,我真的需要使用 kapt 吗?
问题描述
这个问题的原因是下一个问题:我一直在使用这个库使类在 Java 中可打包,我决定将所有模型迁移到 kotlin 类。
阅读一些文档后,我意识到我需要使用KAPT而不是“annotationProcessor”。
问题:问题是后来当我尝试运行应用程序时,我开始遇到使用“annotationProcessor”的 Dagger 2 和 Butterknife 的问题,因为它们处理的是 JAVA 类,而不是 Kotlin 类。为了让事情重新开始,我必须在我的 gradle 文件中为每个“annotationProcessor”添加一个新行,但改用“kapt”。
所以我的问题是:如果使用这些框架所涉及的代码是纯 java 类,我真的需要这样做吗?如果我需要这样做,你能解释一下原因吗?
感谢您抽时间阅读!
解决方案
是的,你需要这样做。
一旦您将 Kapt 添加到项目中,它就会完全接管注解处理,因此 Java 编译任务不会运行任何注解处理器。为了使 Kotlin 和 Java 中的注解生成的代码可用于在 javac 之前运行的 Kotlin 编译器,这是必要的。
由于 Kapt 处理 Kotlin 和 Java 文件中的注解,因此在 Java 中使用它进行注解是 Kotlin + Java 项目的推荐方式。
推荐阅读
- java - Java RegEx模式中Alnum和IsAlphabetic字符类的关系
- reactjs - Context.Consumer 无法从 Provider 获取价值
- image - StackPane 中的 BackgroundImage 大小为 0,不应该是
- python - 复制对象时调用方法
- memory - 2篇文章中提到的“虚拟内存”是指不同的东西吗?
- c# - 角度登录“异常:关联失败。未知位置”
- python - 如何单击热键并同时键入字符串?
- c# - SaveChanges vs SaveChangesAsync 基准测试:奇怪的结果
- php - 如何在 Twig/Timber 中制作 wordpress 帖子列表页面?
- react-native - Refreshcontrol 重新加载所有子组件