I'm trying to convert a Java code into Kotlin for custom dagger scope creation.
Here is Java code:
@Documented
@Scope
@Retention(RetentionPolicy.RUNTIME)
public @interface CustomScope {
}
Once converted into kotlin here is the result
@Scope
@Documented
@Retention(RetentionPolicy.RUNTIME) annotation class CustomScope
I have a type mismatch with @Retention(RetentionPolicy.RUNTIME)
.I have the following error message :Required Type is AnnotationRetention but RetentionPolicy type was found.
Also @interface seems to have been replaced.
The Retention
annotation class which you might have used is from the Kotlin's library (from the package kotlin.annotation
).
It expects a property of the enum type AnnotationRetention
. So, you can do something like this:
@MustBeDocumented
@Scope
@Retention(AnnotationRetention.RUNTIME)
annotation class CustomScope
Btw, if you look at the Annotations.kt
file, you will see that that the Retention
annotation will take the default property AnnotationRetention.RUNTIME
when you don't pass anything to it.
So, just @Retention
annotation will do too.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With