我在 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] 删除。
我来说两句