2017-05-08 15 views
0

nullVoid[]のキャスト効果は何ですか?私は前にそれを見たことがない、読んでいる間にそれを見つけたLoaderThrottlehere。一般に空配列へのキャスト

mPopulatingTask.executeOnExecutor(
          AsyncTask.THREAD_POOL_EXECUTOR, (Void[])null); 

答えて

1

次のシナリオを想像:

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

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

あなたは同じシグネチャを持つ2つの方法で、異なるパラメータのタイプのみを持っています。

doStuff(null);を呼び出す場合、コンパイラはここでどのメソッドを使うべきかを知らず、Ambiguous method callを与えます。 doStuff((OtherType)null);を使用すると、あいまいさが取り除かれ、コンパイラは満足しています。

+0

ありがとう@QBruteはそれを得ました。 – mallaudin

2

その2番目のパラメータの複数の可能なタイプが存在する場合、キャストは、候補タイプnullために使用されるべきコンパイラに指示します。

executeOnExecutor()Executorであるため、2番目のパラメータは余分である必要があります。その後、varargsおよび0パラメータはvarargsに対して完全に有効です。 @CommonsWareの答えに加えて

関連する問題