Java
新しいJavaの仕様にこんなのが提案されているらしい
@Nonnull: nullを許容しない @Nullable: nullを許容する @CheckForNull: nullになる可能性を考慮してチェックを促す @Nonnegative: 負数を許容しない @Signed: 符合付き数値のみ許可 @CheckForNegative: 負数になる可能性を考慮してチェックを促す @Positive: 正数のみ許可 @CheckForNonpositive: 正数で無い可能性を考慮してチェックを促す @CheckReturnValue: メソッドの戻り値をチェック @Nls: 自然言語の文字列のみ許可 @NonNls: 自然言語でない文字列のみ許可 @Syntax: シンタックスを指定(たとえば"JavaScript"など) @Pattern: 文字列のパターンを指定 @RegEx: 正規表現の文字列のみ許可 @ResultSetType: ResultSetのタイプを示す値のみ許可 @ResultSetConcurrency: ResultSetの並行処理モードを示す値のみ許可 @ResultSetHoldability: ResultSetの保持機能モードを示す値のみ許可 @InjectionAnnotation: あるアノテーションがリソースインジェクションのためのものであることを示す
http://journal.mycom.co.jp/column/jsr/016/index.html
これは強力そうですのう。やばいですな。これがJavaに実装されて、さらにクロージャまで出来たらちょっと日記タイトルから変わるかも。Java大好きharuyutakaさんに転向するかも。