- - PR -
空文字を共用する効果
| 投稿者 | 投稿内容 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-05-25 18:04
ああ、そうですね、 定義の頻度にもよりますが、コンパイル時間が短縮される程度ですね。
うーん・・でも「意味的に」メソッドを使いたくはないよねぇ・・・・。 private static final String EMPTY = Hoge.constEmpty(); ...?なんかかえってわかりにくいかも・・・ まあ、リビルドは仕方ないということで。 デプロイ直前に全コンパイルする癖をつけましょう・・・ | ||||||||||||
|
投稿日時: 2004-05-25 18:55
脱線気味ですが、 うちのプロジェクトでは ant を使って、全てコンパイルするようにしています。 | ||||||||||||
|
投稿日時: 2004-05-25 23:11
これだったら何もしてくれないほうがいいと思うのは私だけ? どんな無茶なルールでも理由をはっきりさせてほしいですね。 私が想像したのはtak3さんのおっしゃるマジックナンバーを なくすってことですが、
を読んで意味ないやって思い直しました。 あるStringのフィールドに対して「空」という状態は ""かもしれないしnullかもしれないし"****"という文字列かもしれない。 こういうときにEMPTY=""とかしておいて代入したり比較したりすると ソースが読みやすくなりそうです。 (""とnullのような混乱もなくなるでしょう) そういう意図がないのであれば、反って混乱を招きそうなので やめたほうがいいかもしれませんね。 性能面では支障はないでしょうけど。 | ||||||||||||
|
投稿日時: 2004-05-26 09:34
EMPTYは、かならずHoge.EMPTY 定数を使うように規定するとEMPTYの判断に
stringHoge.equals("") とか、 stringHoge.equals(EMPTY) の代わりに stringHoge == Hoge.EMPTY なんて比較ができるようになりますね。 メリットと思ったけど、実際はEMPTYの定義をまもらなくてバグが多発しそうな気も・・・ | ||||||||||||
|
投稿日時: 2004-05-26 10:41
[quote]
zaxx_MDさんの書き込み (2004-05-25 18:04) より:
そうですね。私も使ったことはありません。 (^^; おっしゃる通り、デプロイ前に全コンパイルするようにすればよいので、 javaの標準ライブラリやjakartaなどの、広く公開する目的のAPIやフレームワークを 作る人ではなければ大きな問題はないと思います。 | ||||||||||||
|
投稿日時: 2004-05-26 10:49
うーん・・・だいたいそういう定義をするときは、 設計初期に意図をもっていたことが多くて、 それを他人に伝えるのは経緯から整理して説明しないといけないですよね。 で、
と答えてしまうことってありませんか? 特にリファクタリングをするのが面倒になって途中から 意図が曖昧になって重複した意味を持ってしまうと・・・・ 定数定義するなら最後まで責任を持って管理することと、 きっちりJavaDocコメントを書くとミンナシアワセになれると信じています。 | ||||||||||||
|
投稿日時: 2004-05-26 23:24
(強調は引用者による) 手を出したら面倒でも最後までやらないとだめですよね。 人が見る可能性のあるソースであればなおさら。 | ||||||||||||
