Kotlin:如何将数组传递给Java批注 [英] Kotlin: how to pass array to Java annotation
本文介绍了Kotlin:如何将数组传递给Java批注的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想使用package io.dropwizard.validation;
Java用法:
@OneOf(value = {"m", "f"})
科特琳的用法:???
Kotlin usage: ???
我已经尝试过:
@OneOf(value = arrayOf("m", "f"))
和这个:
@OneOf(value = ["m", "f"])
(此示例自Kotlin 1.2开始有效,它在注释中支持数组文字,谢谢@BakaWaii)
( this example works since Kotlin 1.2, it supports array literal in annotation, thanks @BakaWaii)
我所能得到的是:
类型推断失败.预期的类型不匹配:
Type inference failed. Expected type mismatch:
必填:字符串
找到:Array<String>
科特林版本:1.1.2-2
Kotlin version: 1.1.2-2
推荐答案
value
参数在Kotlin中自动转换为vararg参数,如
The value
parameter is automatically converted to a vararg parameter in Kotlin, as described in http://kotlinlang.org/docs/reference/annotations.html#java-annotations.
在这种情况下,正确的语法是@OneOf("m", "f")
The correct syntax for this particular case is @OneOf("m", "f")
这篇关于Kotlin:如何将数组传递给Java批注的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文