2016/06/21

[android?]@NonNullはそんなに強くない?

API仕様が決められてるAndroidのライブラリを作っている。
引数にnullは受け付けないやつだったので「これは@NonNullにしとけばいいだろう」と、何も考えずに@NonNullを付けておいた。

Android Studioも、@NonNullを付けておいてnullチェックのif文を書くと「それは常にfalseだよ」と教えてくれるので、取っ払った。
いやいや、新しい言語は楽でいいねぇ。

 

が、考えてみると、nullかどうかなんて動的に変わるものだから、静的にnullかどうかわかるのは実装で直接書いたときだけじゃなかろうか?
実行しているときに、経路によってnullになってしまうこともあるだろう。

そういうとき、どうなるんだ?


どうもならなかった。。。。
使うところで、NullPointerExceptionした。

そっか、アノテーションって、ほんとに注釈なんだねぇ。。。
そのままなのだけど、それを、それを我々は受け入れねばならぬのだ!

 

Android Studioで@NonNullのパラメータをnullチェックすると表示される、

image

これはちょっと言いすぎってことですな。

個人的には、NULLチェックはあまり好きではないのだが、API仕様があるからしようがないですわ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。