[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 11795] @deprecated タグ (Re: 本日の議事録)



村山です.

> > >   Javaの@deprecatedは警告のみでしたっけ? また、Javaでもコンパイルエラー
> > > にするためにはどうしたら良いのでしょうか?
> > メソッド自体を消せばいいだけでは?

>   もろちんそうですが、でも実際には削除されずに@deprecated扱いになっているのが
> 通例のように思えます。
それは互換性を維持して「エラーにしたくない」からこそ残しているのでしょう.
そう言えばStruts辺りでは実際に消した奴も出てきてるはず.この辺りがJDKの
標準APIと,非標準APIであるJakartaとの違いですね.標準APIは滅多なことじゃ
消さないし,消せません.なにしろ未だにVectorやHashtableさえも残ってる.

@deprecatedタグは
「過去の互換性を維持するために残しているので,コンパイルエラーにはしないけど
使うのはお奨めしませんよ.いつ消すとは決めてないけれど,将来消すかもしれないし
できればやめときなさいよ.」
的なものなので,コンパイルエラーにする必要はあまりないと思います.
むしろエラーになったら困る場合の方が多いのでは.

また@deprecatedタグはjavadocタグの中でコンパイラに影響を与える唯一の例外だった
わけです.さらに例外事項を増やして複雑化し,肥大化することはあまり賛成できません.
アノテーションの効果についても私は半信半疑です.
#肥大化はプログラミング言語の失敗パターンの一つです.

---
全然関係ないけれど,あの嶋正利氏がblogを始めたそうです.
今日知りました.
http://v-t.jp/premier/