首页 > 解决方案 > 是否可以将空数组传递给Java varargs?

问题描述

我在Java中有以下代码:

  public static void main(String[] args) {
    checkVarargs(null);
  }

  public static void checkVarargs(String... o) {
    System.out.println(o);
  }

当我尝试将 main 方法自动转换为 Kotlin 时,我得到以下信息:

    @JvmStatic
    fun main(args: Array<String>) {
      checkVarargs(null)
    }

但是,在 Java 案例中,传递了一个空数组,它null在 Kotlin 案例中打印[Ljava.lang.String;@548c4f57(包含空的数组)。

是否可以从 Kotlin 代码将空数组传递给 Java 可变参数?

标签: kotlin

解决方案


问题是,为什么 Java 会这样?是否有意义?你不想传递一个null字符串吗?Kotlin 不支持“可为空的可变参数”这个模糊的概念,您无法像在 Java 中那样实现它。

checkVarargs()将传递一个空数组

checkVarargs(null)null将在其中传递一个数组


推荐阅读