API仕様が決められてるAndroidのライブラリを作っている。
引数にnullは受け付けないやつだったので「これは@NonNullにしとけばいいだろう」と、何も考えずに@NonNullを付けておいた。
Android Studioも、@NonNullを付けておいてnullチェックのif文を書くと「それは常にfalseだよ」と教えてくれるので、取っ払った。
いやいや、新しい言語は楽でいいねぇ。
が、考えてみると、nullかどうかなんて動的に変わるものだから、静的にnullかどうかわかるのは実装で直接書いたときだけじゃなかろうか?
実行しているときに、経路によってnullになってしまうこともあるだろう。
そういうとき、どうなるんだ?
どうもならなかった。。。。
使うところで、NullPointerExceptionした。
そっか、アノテーションって、ほんとに注釈なんだねぇ。。。
そのままなのだけど、それを、それを我々は受け入れねばならぬのだ!
Android Studioで@NonNullのパラメータをnullチェックすると表示される、
これはちょっと言いすぎってことですな。
個人的には、NULLチェックはあまり好きではないのだが、API仕様があるからしようがないですわ。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。