2012-02-28 12 views
1

これは、Javaが短絡しないので、愚かな質問のようですが、私は、Androidは非常に私が書いたコードのこのビットに私は仮定のと同じ感覚でJavaを使用して、そう言っていない方法を思い出し:Androidは短絡をサポートしていますか?

... code omitted ... 
else if (mimeType.equals("application/x-tar") 
    || mimeType.equals("application/x-rar-compressed") 
    || mimeType.equals("application/stuffit") 
    || mimeType.equals("application/zip") 
    || mimeType.equals("application/x-gzip")) 

...あまり一般的でないもの(tarball/gzip)の前にもっと一般的なもの(zip/rar)を入れる方が良いでしょうか?

私はそれに似た質問を見つけることができなかったという事実は、おそらく私にこれに対する答えを与えてくれるかもしれませんが、申し訳ありません。

答えて

4

短絡は、||でサポートされています。

このケースを最適化する場合は、各値をスタティックSetに入れてから、typeSet.contains(mimeType)を確認してください。

1

はい、||(条件付きまたは)演算子は短絡演算子です。 Java Language Specificationを引用すると:

||オペレータは|§15.22.2)のようなものですが、その左側のオペランドの値がfalseの場合のみ、その右辺オペランドを評価します。構文的に左結合(左から右にグループ化)されています。副作用と結果価値の両方に関して完全に関連性があります。式(a)||(b)||(c)の評価は、評価と同じ順序で同じ副作用が発生して同じ結果を生成します式(a)||((b)||(c))の式

関連する問題