【问题标题】:Converting Kotlin IntArray to Java Object[] required by ValueAnimator将 Kotlin IntArray 转换为 ValueAnimator 所需的 Java Object[]
【发布时间】:2018-03-08 16:58:43
【问题描述】:

我目前正在使用 ValueAnimator 的 ofObject 方法处理 Kotlin 文件:Android 中的ValueAnimator.ofObject(TypeEvaluator evaluator, Object... values)

我有一个 Kotlin IntArray 例如 fooIntArray,其中包含我需要作为单个对象传递给可变参数的值。我尝试使用 Spread * 运算符,如下所示:ValueAnimator.ofObject(someEvaluator, *fooIntArray,但类型不正确,我试图弄清楚如何将 fooIntArray 转换为 *fooIntArray as Array<Any> 之类的东西,但没有成功。

在使用int[] 使用 Java 时,例如。 fooIntArray,我能够成功传递 int 数组的唯一方法是像这样转换它:ValueAnimator.ofObject(someEvaluator, (Object[] fooIntArray)

有没有人对我如何在 Kotlin 中实现同样的目标提出建议?

【问题讨论】:

    标签: java kotlin interop


    【解决方案1】:

    toTypedArray 函数(不幸的是,它的名称在这种情况下令人困惑)会将原始整数数组转换为装箱整数数组,之后您可以使用扩展运算符将其传递给方法:

    ValueAnimator.ofObject(someEvaluator, *fooIntArray.toTypedArray())
    

    【讨论】:

      猜你喜欢
      • 2017-02-23
      • 2021-12-16
      • 1970-01-01
      • 2019-12-23
      • 1970-01-01
      • 1970-01-01
      • 2018-11-26
      • 2018-11-23
      • 1970-01-01
      相关资源
      最近更新 更多