Kotlin:如何将数组传递给Java批注 [英] Kotlin: how to pass array to Java annotation

查看:251
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆