要为数据绑定适配器使用多个参数,Java语法是

@BindingAdapter(value={"arg1", "arg2"}, requireAll = false)

However this does not compile in Kotlin:

Error:(13, 37) Unexpected tokens (use ';' to separate expressions on the same line)

Kotlin中多个参数的正确语法是什么?

推荐答案

应该是:

@BindingAdapter(value=*arrayOf("arg1", "arg2"), requireAll = false)

Please refer to the official annotations docs for Java Annotations in Kotlin

引用:

For other arguments that have an array type, you need to use arrayOf explicitly:

// Java
public @interface AnnWithArrayMethod {
    String[] names();
}


// Kotlin
@AnnWithArrayMethod(names = arrayOf("abc", "foo", "bar")) class C

EDIT: Credit to @Francesc

Kotlin相关问答推荐

Kotlin:将泛型添加到列表任何>

Scala性状线性化等价于Kotlin

如何修改muableStateMapOf的值?

Kotlin-elvis算子don';不使用map.get()

Kotlin中反射中Int到可空Double的隐式转换失败

每个 Kotlin 版本的默认 Kotlin 语言版本是什么?

Kotlin 插件之间的区别

Jetpack Compose - 单击 LazyColumn 的项目时应用程序崩溃

这是什么 Kotlin 类型:(String..String?)

OnClickListener 未在 ConstraintLayout 上触发

创建首选项屏幕时找不到androidx.preference.PreferenceScreen

Kotlin:如何在活页夹中返回正在运行的服务实例?

未在IntelliJ IDEA上运行临时文件

什么是开放式property?为什么我不能将其设置器设为private私有?

如何将map函数应用于Kotlin中的数组并更改其值?

Android 上的 Kotlin:将map到list

使用主构造函数时使用Kotlin getter/setter

将字符串转换为HashMap的最简单方法

Kotlin var lazy init

从 java 活动 *.java 启动 kotlin 活动 *.kt?