2015/10/26

[android]@NonNull?

GitHubにあったAndroidサンプルを開くと、Android Studioエディタのスクロールバーにマークがいくつも出てきた。

image

付近をクリックすると、ソースに薄黄色のマークがついていた。
カーソルを当てると、ホバーに「Not annotated parameter overrides @NonNull parameter」とか出てきた。
はて、エラーではないようだが、何を言っているのだろうか・・・。

検索すると、こちらが出てきた。
脱ビギナー!Androidのnullな話 - クックパッド開発者ブログ
Annotationはなんとなく調べたことがあったけど、Androidが標準で用意したAnnotationということか。
@Nullableが「nullもありですよ」で、@NonNullが「nullはなしですよ」。
もし@NonNullしててnullが来たら、例外を発行してくれるらしい。

なるほどねぇ。
私は、nullって出てきたからNULLチェックでもすればいいんだろう、と入れたけど変わらなかったので、不思議に思ったのだ。
Cとかだと静的解析ツールやコーディング規約がうるさいので機械的に入れたりするけど、どうせNULLになる時点でだめやん、と思うのですよねぇ。
役に立たないわけじゃないけど、どっちかというと開発中はassert()で落とす方が好きなのだ。

0 件のコメント:

コメントを投稿

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

注: コメントを投稿できるのは、このブログのメンバーだけです。