あやみつさんの覚書き

メモや覚書きなど

Javaでいいこと思いついた!!(ネタ、Booleanで3つのフラグ)

ネタです。

例えば、あるメソッド内で"これはここでは例外だ"、"その判定を三項演算子で書きたい"という場合です。

あるメソッド、

public void f(Object obj)

があるとします。
objは何型かはわかりませんよね。
そして、以下に示しますが"Class、もしくはStringを継承していないとダメ"といったように"特定のクラスを継承していないと処理をしない"といった場合にしたのような処理で判定できます。

Boolean flag = obj instanceof Class ? judgeClass((Class)obj) : obj instanceof String ? judcgString((String)obj) : null;

といった感じの処理にすれば最大3種類のフラグを得られることがわかりますよね?
objがClassを継承していればjudgeClassのメソッドで判定、objがStringならjudgeStringで判定、それ以外ならnullがflagに格納されます。
ちなみにjudcgClassとjudgeStringはbooleanを返すメソッドです。
うちの環境ではコンパイルエラーはでないようです。

この場合、false,trueは正常な判定がなされ、nullは例外であるという認識で――

別になんということはないですね。

毎回読みづらい文章ですみません。