記事「JSR-305: ソフトウェア欠陥検出用アノテーション 」
http://www.infoq.com/jp/news/2008/07/jsr-305-update
によると、
メソッドの引数や戻り値がnullである可能性があるとか、nullになってはならないことを明示するためのアノテーションが導入されるそうです。
@Nonnullとか@NullFeasibleとか。
整数型の符号を示すための@Nonnegative、@Signedとかも。
うーん。アノテーションで型システムの一部を実装するみたいな感じかなあ。
下位互換性(バイトコードレベルの互換性)のために無理してるんじゃなかろうか。
C++だと、テンプレートと型システムが協力して(絡み合って?)強力なツールになってたんだけど、
Javaには、ジェネリクスとアノテーションを組み合わせて使う方法は皆無に近かったような。せいぜいコンパイラの警告を抑制するくらい。違ってたかなあ。
Javaはどこを目指してるんだろう。
(追記 2008/07/10)
記事「コラム Java API、使ってますか? JSR 305: Annotations for Software Defect Detection」
http://journal.mycom.co.jp/column/jsr/016/index.html
にもJSR 305の話がありました。
この記事でも、想定されている用途は(当然ながら?)静的なエラー検出。
Javaではジェネリクスもアノテーションも、エラーチェックに用いるというのが流れなのでしょうか。
プログラマとしてはわくわくしないなあ。
http://www.infoq.com/jp/news/2008/07/jsr-305-update
によると、
メソッドの引数や戻り値がnullである可能性があるとか、nullになってはならないことを明示するためのアノテーションが導入されるそうです。
@Nonnullとか@NullFeasibleとか。
整数型の符号を示すための@Nonnegative、@Signedとかも。
うーん。アノテーションで型システムの一部を実装するみたいな感じかなあ。
下位互換性(バイトコードレベルの互換性)のために無理してるんじゃなかろうか。
C++だと、テンプレートと型システムが協力して(絡み合って?)強力なツールになってたんだけど、
Javaには、ジェネリクスとアノテーションを組み合わせて使う方法は皆無に近かったような。せいぜいコンパイラの警告を抑制するくらい。違ってたかなあ。
Javaはどこを目指してるんだろう。
(追記 2008/07/10)
記事「コラム Java API、使ってますか? JSR 305: Annotations for Software Defect Detection」
http://journal.mycom.co.jp/column/jsr/016/index.html
にもJSR 305の話がありました。
この記事でも、想定されている用途は(当然ながら?)静的なエラー検出。
Javaではジェネリクスもアノテーションも、エラーチェックに用いるというのが流れなのでしょうか。
プログラマとしてはわくわくしないなあ。