80
84

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Androidのコードを 見やすく! 書きやすく! するアノテーション その2

Last updated at Posted at 2016-03-21

Android開発をするときに使うと便利なアノテーションのまとめです。
以前投稿させていただいた Androidのコードを 見やすく! 書きやすく! するアノテーション が存外好評でしたので、第2弾を書かせていただきます。
私もまだまだ勉強中ですが、便利なものはガンガン使って、効率よく開発したいものです。

メソッドの引数に渡す値の範囲を明示する

@Size @IntRange @FloatRange
値の範囲を絞ることができます。
メソッドの引数に@IntRangeを付与した場合、受け取る値をここで指定した範囲に絞ることができます。
呼び出し側でこの範囲外の値を渡そうとした場合エラーが表示されるようになります。
intRange1.png
また、メソッドに@IntRangeを付与した場合には、戻り値を指定した範囲内に限定することができます。
retrun句で範囲外の値を返そうとした場合にエラーが表示されるようになります。
intRange2.png
また、@Sizeを使うと、Stringの文字列長を指定したり、
size1.png
配列の長さを指定することができます。
size2.png

引数にカラーコード整数を明示する

@ColorInt
色情報を整数で渡すことを明示できます。
リソースIDではないことを明示するもので、リソースID以外のintは通してしまうため、@ColorRes(前回紹介)と対で使うとよさそうです。
こちらを指定した場合、リソースIDを渡そうとするとエラーが表示されるようになります。
colorInt.png

メソッドの実行スレッドを明示する

@UiThread @MainThread @WorkerThread @BinderThread
メソッドの実行されるスレッドを明示することができます。
Androidの実装では、描画処理や通信処理などスレッドを意識して実装しなければなりませんが、このアノテーションを使うことでIDE上でエラーを表示してくれるようになります。
例えば、@UiThreadを付けたメソッドはUIスレッド以外で呼び出そうとした場合エラーが表示されるようになります。
uiThread.png
また、@WorkerThreadを付けたメソッド内でUI処理を行おうとするとエラーが表示されるようになります。
workerThread.png

値がNullになる可能性を明示する

@Nullable
メソッドの引数にNullが来る可能性があることを明示的に指示します。
これを指定していると、この値を使おうとした場合にNullである可能性がある警告が表示されるようになります。
nullAble1.png
また、メソッドに@Nullableを付与した場合、呼び出し側に戻り値がNullである可能性があることを明示的に知らせることができます。
呼び出し側が、このメソッドからの戻り値を使用する場合にNullの可能性がある警告が表示されるようになります。
nullAble2.png

#メソッドがオーバーライドされた場合にsuperを呼ぶ必要があることを明示する
@CallSuper
継承されたクラスで@CallSuperを指定したメソッドをオーバーライドした場合superを呼ぶことを義務付けることができます。
オーバーライドしたメソッドでsuperを呼んでいないとエラーが表示されるようになります。
callSuper1.png
callSuper2.png

メソッドの戻り値を使用することを義務付ける

@CheckResult
メソッドに@CheckResultを付与することで、呼び出し元が戻り値を使用することを義務付けることができます。
呼び出しもとで戻り値を使っていない場合にエラーが表示されるようになります。
checkResult1.png
また、戻り値を使わない場合には同様のほかのメソッドを呼び出すべきであるならば、そちらに誘導することもできます。
checkResult2.png

80
84
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
80
84

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?