在 Kotlin 中用 Members 表达 Java 注解 Class
Expressing Java Annotation Class with Members in Kotlin
我是 Kotlin 的新手,目前在 OSGI 包开发 POC 中使用 v1.3.31。我目前正在使用注解处理器来生成 OSGI 清单声明,我正在尝试找到以下 Kotlin 等价物:
@ObjectClassDefinition(name="Config", description = "Sample Config")
public static @interface Config {
@AttributeDefinition(name = "A parameter", description = "Configurable param")
String myParameter() default "";
}
假设这些 OSGI 注释创建为:
@Retention(RetentionPolicy.CLASS)
@Target(ElementType.TYPE)
public @interface ObjectClassDefinition
/*....*/
@Retention(RetentionPolicy.CLASS)
@Target(ElementType.METHOD)
public @interface AttributeDefinition
我在 Kotlin 中最接近的是在 public annotation class
上使用 @ObjectClassDefinition
注释,但是由于 Kotlin 注释 classes 不支持成员,我不能使用 @AttributeDefinition
在 class 成员上。
- 我试过只使用 Kotlin
class
或 interface
但注解处理器不允许任何非注解 class。
- 我也尝试在 Kotlin 中创建一个
java.lang.Annotation
来绕过这种行为,但编译器不允许。
当前部分工作的实施,这是最新的工作GitHub source.:
@ObjectClassDefinition(name = "Sample Kotlin servlet",
description = "Simple Kotlin servlet with configurable properties")
public annotation class Config (
val value : String = "hello"
)
我注意到 Kotlin 中的注释可能特别棘手。非常感谢任何见解!
@ObjectClassDefinition(
name = "Sample Kotlin servlet",
description = "Simple Kotlin servlet with configurable properties")
annotation class Config (
@get:AttributeDefinition(name = "A parameter", description = "Configurable param")
val value : String = "hello")
("public"好像没有什么作用)。
有关详细信息,请参阅此文档 annotation-use-site-targets
我是 Kotlin 的新手,目前在 OSGI 包开发 POC 中使用 v1.3.31。我目前正在使用注解处理器来生成 OSGI 清单声明,我正在尝试找到以下 Kotlin 等价物:
@ObjectClassDefinition(name="Config", description = "Sample Config")
public static @interface Config {
@AttributeDefinition(name = "A parameter", description = "Configurable param")
String myParameter() default "";
}
假设这些 OSGI 注释创建为:
@Retention(RetentionPolicy.CLASS)
@Target(ElementType.TYPE)
public @interface ObjectClassDefinition
/*....*/
@Retention(RetentionPolicy.CLASS)
@Target(ElementType.METHOD)
public @interface AttributeDefinition
我在 Kotlin 中最接近的是在 public annotation class
上使用 @ObjectClassDefinition
注释,但是由于 Kotlin 注释 classes 不支持成员,我不能使用 @AttributeDefinition
在 class 成员上。
- 我试过只使用 Kotlin
class
或interface
但注解处理器不允许任何非注解 class。 - 我也尝试在 Kotlin 中创建一个
java.lang.Annotation
来绕过这种行为,但编译器不允许。
当前部分工作的实施,这是最新的工作GitHub source.:
@ObjectClassDefinition(name = "Sample Kotlin servlet",
description = "Simple Kotlin servlet with configurable properties")
public annotation class Config (
val value : String = "hello"
)
我注意到 Kotlin 中的注释可能特别棘手。非常感谢任何见解!
@ObjectClassDefinition(
name = "Sample Kotlin servlet",
description = "Simple Kotlin servlet with configurable properties")
annotation class Config (
@get:AttributeDefinition(name = "A parameter", description = "Configurable param")
val value : String = "hello")
("public"好像没有什么作用)。 有关详细信息,请参阅此文档 annotation-use-site-targets