Kotlin:null和"Overload resolution ambiguity"

maz*_*zzy 3 null overloading kotlin

我想从Kotlin调用一个重载的java函数.我想使用一个null对重载分辨率很重要的for参数.

如何指定值的IntArray类型null

我不喜欢具有常见类型的额外varibale的解决方案.

在此输入图像描述

Rol*_*and 7

而不是变量只是投射它,即null as IntArray?,例如:

origImg.data.getSamples(0, 0, origImg.width, origImg.height, 0, null as IntArray?)
Run Code Online (Sandbox Code Playgroud)

请注意,这与Java中的行为相同,您还需要强制转换null,例如(int[]) null,调用适当的重载方法.

您可以构建一个函数,该函数为您提供一个null带有reified类型的~typed (如果它还不存在):

inline fun <reified T>typedNull(): T? = null
Run Code Online (Sandbox Code Playgroud)

并调用它:

typedNull<IntArray>()
Run Code Online (Sandbox Code Playgroud)

但话说回来,null as IntArray?我认为很清楚,人们已经知道了.