在 kotlin 中使用注解处理器
Use annotation processor in kotlin
我的处理器中有一个简单的注释,如下所示:
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.TYPE) @Retention(RetentionPolicy.CLASS)
public @interface BundleBuilder
{
// ...
}
这在 java 文件中有效,但一旦我将文件转换为 kotlin,注释的导入就不再有效。为什么?
我需要更改什么才能让他的注释在 kotlin 中也能正常工作?从文档中我可以看到 kotlin 与 java 注释 100% 兼容所以我在这里有点困惑是什么问题......我会理解处理器是否不工作并且需要调整才能工作使用 kotlin,但我不知道为什么导入本身不起作用...
我说的图书馆在这里:https://github.com/MFlisar/BundleArgs
我认为您应该在 build.gradle
中使用 kapt
进行注释处理。毕竟,清理并重建您的项目。
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
//...
dependencies {
compileOnly 'com.github.MFlisar.BundleArgs:bundleargs-annotation:1.3'
kapt 'com.github.MFlisar.BundleArgs:bundleargs-processor:1.3'
}
repositories {
maven { url "https://jitpack.io" }
}
我的处理器中有一个简单的注释,如下所示:
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.TYPE) @Retention(RetentionPolicy.CLASS)
public @interface BundleBuilder
{
// ...
}
这在 java 文件中有效,但一旦我将文件转换为 kotlin,注释的导入就不再有效。为什么?
我需要更改什么才能让他的注释在 kotlin 中也能正常工作?从文档中我可以看到 kotlin 与 java 注释 100% 兼容所以我在这里有点困惑是什么问题......我会理解处理器是否不工作并且需要调整才能工作使用 kotlin,但我不知道为什么导入本身不起作用...
我说的图书馆在这里:https://github.com/MFlisar/BundleArgs
我认为您应该在 build.gradle
中使用 kapt
进行注释处理。毕竟,清理并重建您的项目。
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
//...
dependencies {
compileOnly 'com.github.MFlisar.BundleArgs:bundleargs-annotation:1.3'
kapt 'com.github.MFlisar.BundleArgs:bundleargs-processor:1.3'
}
repositories {
maven { url "https://jitpack.io" }
}