Java 强制转换空到空数组

Java 强制转换空到空数组,java,android,Java,Android,将null强制转换为Void[]有什么效果?我以前没有见过它,我是在阅读LoaderThrottle示例时遇到它的 通常,如果第二个参数有多个可能的类型,则cast会告诉编译器应该将哪个候选类型用于null 在这种特定情况下,第二个参数应该是多余的,因为executeOnExecutor()接受Executor,然后是varargs,零参数对varargs完全有效。通常,如果第二个参数有多种可能的类型,强制转换告诉编译器应该为null使用哪种候选类型 在这种特定情况下,第二个参数应该是多余的,因

null
强制转换为
Void[]
有什么效果?我以前没有见过它,我是在阅读
LoaderThrottle
示例时遇到它的


通常,如果第二个参数有多个可能的类型,则cast会告诉编译器应该将哪个候选类型用于
null


在这种特定情况下,第二个参数应该是多余的,因为
executeOnExecutor()
接受
Executor
,然后是varargs,零参数对varargs完全有效。

通常,如果第二个参数有多种可能的类型,强制转换告诉编译器应该为
null
使用哪种候选类型


在这种特定情况下,第二个参数应该是多余的,因为
executeOnExecutor()
先取
Executor
,然后取varargs,零参数对于varargs是完全有效的。

除了@commonware的答案之外,想象以下场景:

public void doStuff(SomeType type) {
    ...
}

public void doStuff(OtherType type) {
    ...
}
您有两个具有相同签名的方法,只是参数的类型不同


现在,如果要调用
doStuff(null)编译器不知道应该在这里使用哪种方法,并且会给您一个
不明确的方法调用
。带有
doStuff((其他类型)null)你消除了歧义,编译器很高兴。

除了@commonware的答案,想象一下以下场景:

public void doStuff(SomeType type) {
    ...
}

public void doStuff(OtherType type) {
    ...
}
您有两个具有相同签名的方法,只是参数的类型不同


现在,如果要调用
doStuff(null)编译器不知道应该在这里使用哪种方法,并且会给您一个
不明确的方法调用
。带有
doStuff((其他类型)null)你消除了歧义,编译器很高兴。

谢谢@QBrute,谢谢@QBrute。