我正在尝试将 @Age 约束的实现(在网上找到)从 Java 复制到 Kotlin,我复制了 Java 代码库并使用 IDE 将其转换为 Kotlin 代码。
Java代码
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RUNTIME)
@Repeatable(Age.List.class)
@Documented
@Constraint(validatedBy = { })
public @interface Age {
String message() default "Must be greater than {value}";
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };
long value();
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RUNTIME)
@Documented
@interface List {
Age[] value();
}
}
Run Code Online (Sandbox Code Playgroud)
Intellij生成的对应Kotlin代码
@Target(AnnotationTarget.*)
@Retention(RUNTIME)
@Repeatable(Age.List::class)
@Documented
@Constraint(validatedBy = arrayOf())
annotation class Age(
val value: Long,
val message: String = "Must be greater than {value}",
val groups: Array<KClass<*>> = arrayOf(),
val payload: Array<KClass<out Payload>> = arrayOf()) {
@Target(AnnotationTarget.FUNCTION,
AnnotationTarget.PROPERTY_GETTER,
AnnotationTarget.PROPERTY_SETTER,
AnnotationTarget.FIELD,
AnnotationTarget.ANNOTATION_CLASS,
AnnotationTarget.CONSTRUCTOR,
AnnotationTarget.VALUE_PARAMETER,
AnnotationTarget.TYPE)
@Retention(RUNTIME)
@Documented
annotation class List(vararg val value: Age)
}
Run Code Online (Sandbox Code Playgroud)
Kotlin 代码导致错误,指出“注释类中不允许使用成员”。将注释类 List 从 Age 移出是否应该解决问题?有没有其他方法可以在另一个中实现注释类?
谢谢你。
| 归档时间: |
|
| 查看次数: |
1479 次 |
| 最近记录: |