[Java]Javaのアノテーションって一つのクラスオブジェクトに対して同じアノテーションを複数付与できないんですよね。そこがすごく不便だったりします。処理の共通化や属性の注入などクラス、メソッド、変数に対して行ないたい時になどにものすごく重宝するアノテーションですが同種類のものを複数指定できないという制限があります。開発する際に同じアノテーションを複数指定したい時ってやっぱりでてくるんですよね。アノテーションに頼りすぎているという節もあるのかもしれませんが、それでも使いたい!Javaのアノテーションでは複数指定ができない例えば@Hogeというアノテーションをクラスに対して実装する場合、クラスを定義しているスコープの前に指定します。ここで@Hogeを複数指定しようとします。{}当然Javaの仕様で重複するアノテーションにより2行目でエラーになってしまいます。やっても同じアノテーションを複数指定したい場合、この記述では動作しないです。複数アノテーションを指定するには次の方法で実現することができます。アノテーションを配列化して宣言する別名のアノテーションを作り指定するアノテーションを配列化して宣言する個人的に一番手っ取り早いのがアノテーションを配列化してしまう方法です。下手にクラスの構造を崩すよりは配列化した方がたぶん安心です。いう感じでアノテーションそのものをひとつのクラスに集約してしまえばいいのです。hoges();}スポンサードリンク上の例では新規にHogesというアノテーションインターフェースを実装し、そのフィールドに複数指定したいアノテーションHogeを配列として宣言してしまう。別のアノテーションを作成して、そのアノテーションを利用すればうまくいきそうですよね。あとはこの@Hogesを複数指定したかったクラスに付与させます。{}一応認識はしてくれますね。面倒ですが、入れ子状態にしてあげればOKです。開発フレームワークで利用するアノテーションによっては、うまく機能してくれないことがあったりします。いうのも配列化したアノテーション要素を読み込むように作られていないとそうなりますね。別名のアノテーションを作り指定するもうひとつの方法も面倒なんですが、@Hogeと同じ構造のインターフェースを作ってしまうパターンです。...中略)}そもそも宣言するアノテーションが違えばよいですよね。上の例では@Piyoというアノテーションを作成しています。あとはHogeとPiyoを2つ宣言してしまうだけです。{}少なくともこれなら確実に動作しますよね?同じ構造なら処理は別々で動作しても問題なく動作するはずです。毎度作る必要がありますし、それだけで手数ですし、命名規則・開発ルールなど崩す可能性もあります。普通は同じアノテーションを複数宣言するなんてNGなんでしょうね。Javaのアノテーションって便利だけど、使い方間違えるといろいろとまずいことになりそうです。最新の記事よっきパソコンが大好きな青年。職業はプログラマ/SE。フリーランスとしてウェブサイトの構築・保守の業務に従事。専門学校とパソコンスクールで講師も担当。幼少期からパソコンが大好きで、趣味がそのまま仕事に転じた。自作PCの魅力に惹かれたのは学生時代の頃。自作PC専門ブログで、お得な情報を紹介しています。最終更新日:2017年10月23日コメントを残す返信をキャンセルする。published)サイト上に表示された文字を入力してください。業:IT系の講師/フリーランスJavaやPHPなどを中心にWEB系エンジニアとして活動しています。自作PCの魅力にハマり、何台も組み立て経験は豊富。自作PCアドバイザー的なこともやってるので、気軽にご相談下さい!!趣味でホームページ制作をしています。お仕事の依頼をしてみませんか?WordPressテーマ・プラグイン開発、自作PC組立代行などお仕事の依頼はこちらでお願いします。Reserved.このページの先頭へ。