kotlin - 是否可以将空数组传递给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 可变参数?
解决方案
问题是,为什么 Java 会这样?是否有意义?你不想传递一个null
字符串吗?Kotlin 不支持“可为空的可变参数”这个模糊的概念,您无法像在 Java 中那样实现它。
checkVarargs()
将传递一个空数组
checkVarargs(null)
null
将在其中传递一个数组
推荐阅读
- java - 先前初始化后如何使用数组(并为其赋值)?
- android - 如何修复因 ProGuard/R8 导致的崩溃?
- javascript - pageAction.getTitle() 上的 Firefox webextension 上的“等待仅在异步中有效”错误
- android - RecyclerView 和 RadioGroup
- java - Java 增强型凯撒密码:理解 for 循环行为的问题
- java - 您如何使用 Junit 和 Eclipse 测试这些 setter 方法?
- java - 方法 A 中的 Junit Mocking/Stubbing 方法 B(非参数化方法 A)
- javascript - 嵌套开关盒
- angular - 量角器结果不一致 - 失败:脚本超时:未收到结果
- amazon-s3 - CloudFormation S3 NotificationConfiguration 到 SQS