将 Kotlin IntArray 转换为 ValueAnimator 所需的 Java Object[]
Converting Kotlin IntArray to Java Object[] required by ValueAnimator
我目前正在使用 ValueAnimator 的 ofObject 方法处理 Kotlin 文件:ValueAnimator.ofObject(TypeEvaluator evaluator, Object... values)
in Android。
我有一个 Kotlin IntArray
例如 fooIntArray,它包含我需要作为单个对象传递给可变参数的值。我试过如下使用 Spread * 运算符:ValueAnimator.ofObject(someEvaluator, *fooIntArray
,但类型不正确,我试图弄清楚如何将 fooIntArray 强制转换为 *fooIntArray as Array<Any>
之类的东西,但没有成功。
在 Java 中使用 int[]
例如。 fooIntArray,我能够成功传递 int 数组的唯一方法是像这样转换它:ValueAnimator.ofObject(someEvaluator, (Object[] fooIntArray)
。
有没有人建议我如何在 Kotlin 中实现同样的事情?
toTypedArray
函数(不幸的是,它的名称在这种情况下令人困惑)会将原始整数数组转换为盒装整数数组,之后您可以使用扩展运算符将其传递给方法:
ValueAnimator.ofObject(someEvaluator, *fooIntArray.toTypedArray())
我目前正在使用 ValueAnimator 的 ofObject 方法处理 Kotlin 文件:ValueAnimator.ofObject(TypeEvaluator evaluator, Object... values)
in Android。
我有一个 Kotlin IntArray
例如 fooIntArray,它包含我需要作为单个对象传递给可变参数的值。我试过如下使用 Spread * 运算符:ValueAnimator.ofObject(someEvaluator, *fooIntArray
,但类型不正确,我试图弄清楚如何将 fooIntArray 强制转换为 *fooIntArray as Array<Any>
之类的东西,但没有成功。
在 Java 中使用 int[]
例如。 fooIntArray,我能够成功传递 int 数组的唯一方法是像这样转换它:ValueAnimator.ofObject(someEvaluator, (Object[] fooIntArray)
。
有没有人建议我如何在 Kotlin 中实现同样的事情?
toTypedArray
函数(不幸的是,它的名称在这种情况下令人困惑)会将原始整数数组转换为盒装整数数组,之后您可以使用扩展运算符将其传递给方法:
ValueAnimator.ofObject(someEvaluator, *fooIntArray.toTypedArray())