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。