鑄造null
到Void[]
有什麼影響?我以前沒有見過它,我在閱讀LoaderThrottle
示例here時偶然發現它。Casting null void array
mPopulatingTask.executeOnExecutor(
AsyncTask.THREAD_POOL_EXECUTOR, (Void[])null);
鑄造null
到Void[]
有什麼影響?我以前沒有見過它,我在閱讀LoaderThrottle
示例here時偶然發現它。Casting null void array
mPopulatingTask.executeOnExecutor(
AsyncTask.THREAD_POOL_EXECUTOR, (Void[])null);
除了@CommonsWare的答案想象以下場景:
public void doStuff(SomeType type) {
...
}
public void doStuff(OtherType type) {
...
}
你有兩種方法具有相同的簽名,只有參數的類型是不同的。
現在,如果您要撥打doStuff(null);
,編譯器將無法知道應該在此處使用哪種方法,併爲您提供Ambiguous method call
。用doStuff((OtherType)null);
你可以消除歧義,編譯器很高興。
一般而言,如果存在多個可能類型的該第二參數,鑄造告訴哪個候選類型應被用於null
編譯器。
在這個特定情況下,第二個參數應該是多餘的,因爲executeOnExecutor()
需要一個Executor
,然後是可變參數,零參數對於可變參數非常有效。
謝謝@QBrute明白了。 – mallaudin