2009-05-01から1ヶ月間の記事一覧

インタフェースメソッドの引数名をクラスファイルから取得する方法ってないのかな?

JVM仕様の以下の情報から、intarface 以外のメソッドの引数名はデバッグ情報から取得できることがわかります。 4.6 Methods の attributes[] の説明から、オプションとして Code (§4.7.3) attribute を取得できることがわかる。 4.7.3 The Code Attribute の…

アノテーションによるアサーション(その12 オーバーライド時の整合性編)

概要 バージョン 0.0.13 にて、メソッドのオーバーライドに制限を追加しました。この変更により、メソッドをオーバーライドする際に、オーバーライドする側がされる側と同様の制約アノテーションを持たない場合にはエラーになるようになりました。これはリス…

アノテーションによるアサーション(その11 @Max, @Min 編)

概要 バージョン 0.0.12 にて @Max および @Min アノテーションに以下の型のサポートを追加しました。 java.util.concurrent.atomic.AtomicInteger java.util.concurrent.atomic.AtomicLong - アノテーションによるアサーション(その1) アノテーションに…

アノテーションによるアサーション(その10 @Max, @Min 編)

概要 バージョン 0.0.10 にて、@Max および @Min アノテーションについて以下の変更を行いました。 サポート対象の型の追加 アノテーションに与える型の変更(不動小数点数サポートのため) サポート対象として追加された型 byte short float double Byte Sh…

アノテーションによるアサーション(その9 インラインか、メソッド呼び出しか、それが問題だ編)

2009.05.02 現在のバージョン(ver0.0.8) までは、アサーション用のバイトコードをインライン展開する形でバイトコードをウィービングしていました。理由は、そのほうが高速に動作すると考えたからです。しかし、アサーション用のコード全体が毎回ウィービン…

アノテーションによるアサーション(その8 java5 編)

概要 バージョン 0.0.7 までは java6 以上のみのサポートでしたが、バージョン 0.0.8 にて java5 に対応しました。 - アノテーションによるアサーション(その1) アノテーションによるアサーション(その2 mavenプラグイン編) アノテーションによるアサ…

アノテーションによるアサーション(その7 @NotEmpty 編)

概要 バージョン 0.0.7 にて、アサーション用アノテーションに @NotEmpty を追加しました。 @NotEmptyアノテーション 対象がnullでない、かつ、空でないことを保証するためのアノテーションです。現在は、CharSequence(String や StringBuilder等), Collecti…