電子書籍の厳選無料作品が豊富!

はじめまして。
質問があります。
現在参考書でカスタムアノテーションについて学習しているのですが、
何に役立つのかよくわかりません。
ただ単なる注釈みたいなものでしかないのでしょうか?
そこら辺のことがわからず、質問しました。
例えば、@Overrideはオーバーライドする側のメソッドの先頭に
付けることにより、正しくオーバーライドしていなければ、エラー
にするという役割があります。
どうかご教授お願いします。

A 回答 (3件)

>カスタム・アノテーションを使用せずに単なるコメントアウトを


>使用してはまずいのでしょうか?

まずくわないけど、それだとJava SE 5.0で導入されたEoDの恩恵を受けることが出来なくなりますよね。例えば、以下のようなコメントを書いたとしても、javacはそれを全て無視します。

/*
To javacさん

いつもお世話になっております、ソフト開発課のTigerです。

本ソースプログラム内では、オーバーライドによるメソッド宣言の直前で以下のようにコメントアウトを使用しています。

// 以下のメソッドは、Overrideとして宣言。

以上、よろしくお願い致します。


ソフト開発課 Tiger
Tiger@Override.tora
*/

何とかして、javacさんとコミュニケーションできないかな?と感じた時が、アノテーションを利用すべき時です。(ここも、笑う所だよ。)

真面目な回答が欲しい方は、以下を参照。

J2SE 5.0の新機能
第12回 アノテーションの基本
http://www.itarchitect.jp/technology_and_program …

あと、Java SE 5.0(Tiger)について詳しくない方は以下のURLの方も。

ライトニングJava
(26) アノテーション(1) - Javaの大きな変貌、アノテーションの導入
http://journal.mycom.co.jp/column/java/026/index …

ちなみに以下の書籍の最後の方では、ほんの3,4ページほどですが、同じく「アノテーション」について分かりやすい解説がなされています。

改訂第2版 Java言語プログラミングレッスン(下)
http://www.sbcr.jp/books/products/detail.asp?sku …
    • good
    • 0
この回答へのお礼

choconamacream様へ
ご回答ありがとうございました。
たとえ方がわかりやすくよかったです。
あと、参考URLもよかったです。
ありがとうございました。

お礼日時:2007/07/07 05:13

ANo.1です。


アノテーションがコメントと決定的に違うのは、オブジェクトの中に情報として残るということです。
実行時に影響は与えないものの、オブジェクトの中に情報として残っているので、逆コンパイルしたらばれるとか(笑)
あとは、ソースコメントだと、本当のコメントと注意書きとしてのコメントと区別が付かない場合もあるので、アノテーションを使うのかな?
と思ったりしています。

幸い(?)そんな開発を私は担当していないので、カスタムアノテーションを使うまでに至っていないので、参考意見って事しかいえなくてもうしわけないのですが。
    • good
    • 0
この回答へのお礼

PED02744
ご回答ありがとうございました。
参考になりました。
ありがとうございました。

お礼日時:2007/07/06 21:23

役に立つかどうかを決めるのは、カスタムアノテーションを作る人なので、本末転倒しているように思われます。


※「便利だから車に乗るのであって、車に乗るから便利になるわけではない」って事です。

開発者グループで「ほにゃらら」というアノテーションコードがソースに埋め込まれていたら、「こういう意味づけだということにしよう」って時にカスタム・アノテーションは使われます。

例えば
@interface Objection {
String value();
}
とかいうアノテーションを定義したとして、実際のソース上に
@Objection("1だと思うのに2なのはなぜ?");
見たいなコードを埋め込んでおけば、その該当するクラスを実際に作った開発者は
「異議(Objection)」って言われてるところをチェックする・・・
みたいな感じですかね。

そういう意味では、グループ開発じゃないとカスタムアノテーションは意味がないかもしれませんね。

この回答への補足

PED02744様へ
ご回答ありがとうございました。
カスタム・アノテーションを使用せずに単なるコメントアウトを
使用してはまずいのでしょうか?

補足日時:2007/07/06 16:59
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!