将 null 作为 vararg 参数的一部分从 Kotlin 传递给 Java 方法

约书亚

我在 Java 中有类似于此方法声明的内容。假设该类名为JavaClass

public T execute(String s, Function<T> f, Object... args) {}

如果我想从 Kotlin 调用它(我的版本是 1.2.21),我可以写类似这样的东西:

val arg1 = ""
val arg2: String? = null
val javaObject = JavaClass()

javaObject.execute("some string", { print(it) }, arg1, arg2)

奇怪的是我IllegalStateException在执行这段代码时得到了一个它说arg2 must not be null我可以理解它是否说args不能为空。但是考虑到这个调用会导致数组看起来像["", null],这在 Java 中是完全正确的,这看起来很奇怪。

我需要能够将null传递给这个方法。我需要做什么来解决这种行为?

约尔

IllegalStateException这种调用抛出意味着该方法已返回 null 并且您将返回值分配给非 null 类型的变量。它与可变参数无关。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将byte []作为单个参数传递给vararg方法

如何将vararg作为数组传递给Kotlin?

将标签和功能文件参数作为 Karate.Runner 的一部分传递(Java 调用)

从Kotlin将null传递给非空Java方法

将参数作为查询字符串或 url 的一部分传递?

将数组作为对象的一部分传递给Ajax调用

Android / Java-将变量作为参数传递给方法

Kotlin:将Array作为vararg参数传递时,参数类型不匹配

将 null 作为参数传递给 listOf

将静态方法作为参数传递给Kotlin中的另一个方法

将函数作为参数传递给方法

将self作为参数传递给方法

将方法作为参数传递给Java中的另一种方法

将cookie作为node.js请求的一部分传递

NSNotificationCenter将结构作为UserInfo的一部分传递

将 --form 文件作为 ROBOT 框架的一部分传递

将参数传递给别名,该别名是字符串的一部分

作为库作者,期望用户根据情况将null传递给方法参数是否设计不当?

将Null作为参数传递给控制器POST方法

无法将 std::array 的一部分作为模板引用类型参数传递

将数组的一部分作为函数参数传递

如何将Java源文件的一部分转换为Kotlin?

将方法的一部分放入其他方法中返回null

将 NULL 作为参数传递给 C 宏

避免将null传递给构造函数作为参数

我可以将数组作为参数传递给Java中具有可变参数的方法吗?

将类型参数作为类型参数的类传递给Java中的泛型方法

将方法作为Java方法的参数传递

将子类传递给方法,但将超类作为参数?