Kotlin 是否可以将空数组传递给Java varargs?

Kotlin 是否可以将空数组传递给Java varargs?,kotlin,Kotlin,我有以下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>

我有以下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)
    }
@JvmStatic
趣味主线(args:Array){
checkVarargs(空)
}
但是,在Java中传递了一个空数组,它在Kotlin上打印
null
,而在Kotlin中打印
[Ljava.lang.String;@548c4f57
(包含空值的数组)


是否可以从Kotlin代码向Java varargs传递null数组?

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

checkVarargs()
将传递一个空数组


checkVarargs(空)
将传递一个包含
null
的数组,该数组可能重复:或者至少答案让我们了解了为什么Kotlin不是空数组,它是一个包含单个
null
的数组。我想这样做的唯一原因是,我有Java代码和Kotlin测试,我想确保覆盖这个边缘情况d、 如果不可能,我将用Java编写此测试。我尝试使用扩展运算符
checkVarargs(*(数组为null?)
,但它给出了“扩展运算符(*foo)可能无法应用于可为null类型的参数”。因此,这似乎是不可能的。