• ベストアンサー

*でimportするのと、クラス名まできちんと指定するのと

Javaの開発経験は2年くらいですが、未だに疑問でした。 例えばVectorクラスを使いたいとき import java.util.Vectorとする人もいれば、 import java.util.* としてしまう人もいますよね。 前者の人は使うクラスが増えるたびに、丁寧にクラス名でインポートします。*は一切使いません。 やっぱりこの方がメモリを食わない、等の理由でよいのでしょうか?特に最近、こういうソースを良く見かけます。

質問者が選んだベストアンサー

  • ベストアンサー
  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.1

メモリと速度は関係ないはずです。 これはプログラミングスタイルの問題です。 いちいちクラス名を記述するやり方だと、 別のパッケージでクラス名の重複があったとき対処しやすい、 あるいは重複に気付きやすいため、 こちらの方が上品なやり方だとされています。 (たとえば、java.utilのTimerとSwingのTimerはよくかぶります) 対して、import ...*;でインポートするやり方は、 書くのは簡単だけどあとで混乱するおそれがあります。 後者は、楽だけれど、 「バグを起こしやすいじゃないか!」 といわれると反論できません。 それで前者が推奨され、広まっているようです。 (私自身は、前者の方がいいのはわかっているけれど、 無精なのでついつい*を使ってしまいます)

noname#240292
質問者

お礼

なるほど、メモリとは関係なく、上品なんですね。 よくわかりました。 最近担当しているエンドユーザーはソースをチェックしたりするので、それでこういうのを厳密にしているのかもしれないです。 ありがとうございました。

関連するQ&A

専門家に質問してみよう