タグ

Javaとannotationに関するkiyo_hikoのブックマーク (12)

  • Java特有の冗長なコードを簡潔に記述する「Lombok」

    Javaは言語仕様上の制約により、ボイラープレートコード(自明だが省略できないお決まりのコード断片)がいくつかあります。例えば、メンバ変数を読み書きするだけのgetterメソッドやsetterメソッドがこれにあたります。Lombokを使えば、これらJava特有の冗長なコードを、見やすく簡潔なものにすることができます。記事ではLombokを利用して、ボイラープレートコードをシンプルに記述する方法について解説します。 はじめに 今やJava開発に必要不可欠となったものの一つに、IDEの存在があります。例えばEclipseではメンバ変数さえ定義すれば、getter/setterの自動生成や、equalsメソッドやhashCodeメソッド、toStringメソッドなどの自動生成などさまざまな場面でコーディングを強力にサポートしてくれます。 これは大変便利な機能ですが、裏を返せばJavaの言語仕様

    Java特有の冗長なコードを簡潔に記述する「Lombok」
  • アノテーションから、テストケースを自動生成する。 - 谷本 心 in せろ部屋

    [BOF-4554]From Annotations to Unit Test Code Generation Hibernate Validatorのアノテーションから、JUnitのテストケースを自動生成するBOF。 結論として、もし「Funniest Session」を選ぶなら、これを選びたいっていうぐらい おかしかったセッション。 話を聞きながら、そもそも、バリデータのアノテーションを元にして テストケースを自動生成することに、どれだけ意味があるのかな・・・と思っていたら 次々と席を立ってオーディエンス。みんな僕と同じことを思ったのかな。 一気に10人ぐらい席を立ったこともあった。 そんな疑問を意に介さず、発表者はデモなど交えながら、発表を終えた。 Q&Aでも「ビジネスロジックのテストは自動生成できるのか? → それは出来ない」とか 「自動生成後にアノテーションを修正したらどうするの

    アノテーションから、テストケースを自動生成する。 - 谷本 心 in せろ部屋
    kiyo_hiko
    kiyo_hiko 2013/05/02
    継承とか呼び出し階層を遡ってそこのアノテーションを拾っていってシナリオが作れたりするとすごそう
  • Java API、使ってますか?(8) アノテーションでバリデーション - JSR 303: Bean Validator

    既報の通り、ついにエンタープライズJavaの次期バージョンであるJava EE 6の仕様策定がJSR 313としてスタートした。連載でも時期を見てJSR 313やそこに含まれるコンポーネントJSRの詳細を取り上げていく予定だが、エンタープライズ分野に携わる開発者はjcp.orgなどで公表される情報に目を光らせておくといいだろう。 さて、今回もJava SE 7に導入が予定されているAPIを紹介する。Java SE 7への導入が検討されているAPIにはアノテーションを活用したものも少なくない。来ならば複雑な設定を必要とするような機能も、アノテーションを利用することで容易に利用できるようになるため、この流れは必然と言えるかもしれない。今回はそんなアノテーションを活用したAPIのひとつである「JSR 303: Bean Validator」を取り上げる。 JSR 303はJava Beanオ

    Java API、使ってますか?(8) アノテーションでバリデーション - JSR 303: Bean Validator
  • Glassfish勉強会(JavaEE6について)

    11. 初期のEJBでHelloWorldを作ると①リモートコンポーネントインターフェースを定義する決まった親インターフェースを継承public interface Hello extends EJBObject { String sayHello(String name) throws RemoteException; }全メソッドでRemoteException送出を宣言 12. ②ホームインターフェースを定義する決まった親インターフェースを継承public interface HelloHome extends EJBHome { Hello create() throws CreateException, RemoteException; }業務と無関係な例外送出を宣言 13. ③EJB実装クラスを定義する実装するのはHelloではない!public class HelloBean

    Glassfish勉強会(JavaEE6について)
    kiyo_hiko
    kiyo_hiko 2013/05/02
    「@NotNull @Size(min=0, max=128) アノテーションを付けるだけで単項目のバリデーションが行われる。」
  • @Overrideアノテーションでエラー - ASとか

    はじめに 既存のプロジェクトをインポートしたら@Overrideを使用している箇所でもの凄い怒られた。「型 ○○ のメソッド ×× はスーパークラスのメソッドをオーバーライドする必要があります」って...してるじゃないかと jdkのバージョンによって@Overrideアノテーションの仕様が違うらしい 調べてみたらこれがわかったので、プロジェクト設定からJavaコンパイラの項目を調べてみると、コンパイラー準拠レベルが1.5になっていました...これを1.6に変更、エラーが消えてくれました。Eclipseの設定としては1.6になってたので私は問題なかったですが、こちらも確認しておくとよいかなと ちなみに 中には@Overrideを消すとかいうなんともいえない対応方法もネットに転がってたので気をつけたほうがいいですね

    @Overrideアノテーションでエラー - ASとか
    kiyo_hiko
    kiyo_hiko 2013/04/17
    @overrideアノテーションで怒られる時の話
  • 7. アノテーション

    2005.12.12 株式会社四次元データ CTO 畠中晃弘 Java言語機能(JDK5.0(Tiger)新機能) 7章 アノテーション 7.1. 標準アノテーション型 7.2. アノテーションの定義 7.3. 標準メタアノテーション型 J2SE5.0 ではプログラムの動作に影響を与えないアノテーション(注釈)を付加することができます。アノテーションがコメントと異なるのは、プログラムからアノテーションを読み取って処理したりできる点や、アノテーションがコンパイラの動作に影響を与える点などです。(javadoc はここで説明するアノテーションではありませんが)アノテーションと javadoc コメントは似ています。実際、アノテーションは javadoc が持っていた機能を一部持っていますし、将来的に javadoc がアノテーションに置き換えられる可能性もあります。 7.1. 標準アノテーショ

    kiyo_hiko
    kiyo_hiko 2012/04/26
    「将来的に javadoc がアノテーションに置き換えられる可能性もあります」…うーん / メモ:既定では、アノテーションはコンパイルされてもclassファイルに残る
  • [ 2260 ] [Struts2]カスタムバリデータ(Custom Validator) ::: Serendipity 2 future lies'n sundome. (´・ω・)

    Struts1時代からある、入力チェックコンポーネントです。 使い方は一緒ですが、Struts2はアノテーションで宣言できるので、それも使いましょう。 CustomValidatorとは Struts2で搭載されているValidatorは、Struts1時代とその機能は変えていません。 というわけで、既存Validatorの機能では単一項目ずつのチェックしかできません。 必須チェック、フォーマットチェック、レンジチェック、メールアドレス、URL、正規表現によるチェック、 そしてカスタムバリデータ。 カスタムバリデータは読んで字の如く、複雑な条件をカスタマイズして、Validationと同じ扱いにしてくれるものです。 Struts2のカスタムバリデータは、ActionSupportクラスが簡単なメソッドを提供しているので 楽に処理を追記することができます CustomValid

    kiyo_hiko
    kiyo_hiko 2012/04/25
    Struts2ではアノテーションを使えると云ふこと
  • メタアノテーション

    アノテーションのアノテーション アノテーションを読み込んでクラスやフィールドなどの情報を管理するという手法が可能になりますが、そのためにメタアノテーションを知る必要があります。 メタアノテーションとは、単純にアノテーションに指定するアノテーションです。 例えば、デフォルトでアノテーションは、クラスやフィールド、メソッドやコンストラクタなど、アノテーションが指定できるあらゆる宣言に記述可能です。 しかし、アノテーションの目的によってはクラスだけに指定して意味のあるものや、メソッドだけに指定して意味のあるものが存在します。 例として、メタアノテーションはアノテーションに指定するためのアノテーションであり、メタアノテーションをクラスに指定することに意味はありません。 こうした問題を解決するための、アノテーションの振る舞いや制限を指定するのがメタアノテーションなのです。 メタアノテーションには、コ

  • Javaアノテーションメモ(Hishidama's Java annotation Memo)

    それぞれの指定の意味する場所は、以下のようになっている。 @LocationExampleAnnotation //TYPE:クラス定義やインターフェース定義をする場所 public class アノテーションを付けるサンプル { @LocationExampleAnnotation //FIELD:フィールド(メンバー変数)定義 protected int value; @LocationExampleAnnotation //CONSTRUCTOR:コンストラクター定義 public アノテーションを付けるサンプル() { } @LocationExampleAnnotation //METHOD:メソッド定義 public void メソッド() { } public int 引数ありメソッド( @LocationExampleAnnotation //PARAMETER:パラメータ

  • Javaアノテーションでお聞きします。 - @SuppressWarnings("unused")を指定すると非参照データ... - Yahoo!知恵袋

    Java アノテーションでお聞きします。 @SuppressWarnings("unused") を指定すると 非参照データの コンパイラーの警告を消してくれて非常に助かるので よく使っています。 できれば "unused" 以外にも使えそうなオプションがありそうなのですが JDK Documentをみても @SuppressWarnings については ほんのさわりの説明しかみつかりません。 何処をみたらいいのでしょうか? また アノテーション機能は 他の言語のマクロ機能かなと 思っていたら コンパイル時、クラスロード時、実行時に 様々な仕掛けができる とんでもないスグレモノのようですが、 インターネットの情報は今イチわかりません。また 書籍も 見つかりません。 例えば デバッグ用のトレースを自動的に メソッドの入り口/出口で出力する、特定データが変更されるたびに 印刷出力する と言った

    Javaアノテーションでお聞きします。 - @SuppressWarnings("unused")を指定すると非参照データ... - Yahoo!知恵袋
    kiyo_hiko
    kiyo_hiko 2011/06/01
    うん。アノテーション便利
  • Super Technique 講座~JavaBeans自動作成術

    皆さんも Java でプログラミングをするとなると、「JavaBeans」することが超多い...のは当り前のことだ。でだけど、 いちいち変数を定義するごとに setter/getter を作るのは面倒だ... とお思いの諸兄もきっと多いに違いない。まあ、Eclipse とかだったら、自動生成する、というのは一番間単で、マギレのない手段だからそうしちゃってる方も多いことだろう。勿論そうするのが一番いい。 けど、ここではちょいと勉強を兼ねて、 アノテーションから setter/getter を生成する、ってのはどうだ? というのをやってみようと思う。まあ、実際、 public class MyBean { @Bean(kind=Bean.Kind.GETTER) private String message; .... といったかたちで、そういうアノテーションを作るのは簡単なんだが、それをどう

    kiyo_hiko
    kiyo_hiko 2011/06/01
    アノテーションの使い方。コード書かなくても某言語のマクロみたいに自動生成できるということか。
  • Higher order functions in Java with an annotation processor factory

  • 1