- PR -

importの記述について

投票結果総投票数:143
一つずつ 92 64.34%
*でひっくるめて 49 34.27%
その他 2 1.40%
  • 投票は恣意的に行われます。統計的な調査と異なり、投票データの正確性や標本の代表性は保証されません。
  • 投票結果の正当性や公平性について、@ITは一切保証も関与もいたしません。
投稿者投稿内容
C'zka
ベテラン
会議室デビュー日: 2003/09/04
投稿数: 64
投稿日時: 2004-01-13 15:18
いつもお世話になっています。

以前から疑問に思っているのですが、クラスファイルの頭に宣言するimport文は
各クラスごとに記述されているでしょうか?それともjava.lang.*のように
ひっくるめて入れているでしょうか?

Javaの開発に初めて関わったときには、「メモリを食うから、一つずつ記述する事」
といわれました。開発環境がeclipseだったので、ctrl + shift + oで手軽に行えて問題がありませんでしたが^^;

ですが、今いるプロジェクトに関しては、自分以外が秀丸等のテキストエディタで記述しているので、*でひっくるめて宣言していたりします。
当然、エラー宣言もされないため、使用されていないimport文も散見します。

自分としては、一つずつ宣言してやったほうがメモリの食いも少なくだろうしそうしているのですが、皆さんはどうでしょうか?

ちなみに、ソースの管理はVisualStudioのVSSで行っています(変更のマージ等が出来なくて苦労します・・・今回の事とは関係ないですが)。

以上、よろしくお願いいたします。
とのっち
会議室デビュー日: 2003/09/26
投稿数: 8
投稿日時: 2004-01-13 15:28
最近は、Eclipseを使っているので、自動的にに一つずつインポートしてくれるので、いいですね。でも、テキストエディタとかを使っているのであれば、「*」を使うと思います。なんと言っても面倒くさいですからね:−)
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-01-13 15:40
引用:

C'zkaさんの書き込み (2004-01-13 15:18) より:
Javaの開発に初めて関わったときには、「メモリを食うから、一つずつ記述する事」
といわれました。開発環境がeclipseだったので、ctrl + shift + oで手軽に行えて問題がありませんでしたが^^;


メモリを食う、というのはコンパイル時の話ですか? 少なくとも実行時には関係のない
話だと思いますが。
TomScissors
ベテラン
会議室デビュー日: 2003/06/05
投稿数: 79
投稿日時: 2004-01-13 15:40
古いソースをEclipseで管理しようとしたところ、
未使用のインポートがでるわでるわ…^^;

何を使っているか明確である、という理由で私は一つずつ書いています。
(現在は社内の開発標準で1つずつかくように規定しています)

でも実は、個人的に必要なもののみインポートされている方が、
見てて気持ち良いというか自己満足に浸れるだけなのかも。
(メモリとか明確か、というのは私にとって後付の理由かもしれません)
C'zka
ベテラン
会議室デビュー日: 2003/09/04
投稿数: 64
投稿日時: 2004-01-13 16:46
>tonoさん
やっぱり面倒でしょうね・・・・
自分はVB上がりのため、根本的にどこに何があるのかがわからないんです^^;
よって、JavaDocなしでimport文がかけないというオチがあったりします。。。
ただ、一番最初に行った業務がプロジェクト単位でeclipseだったため、そういうことを
気にせずにすんでいます。まあ、そのため未だにどこにどういうクラスがあるのかもわからないでいたりしますが・・・(Java実務経験約10ヶ月)

>ukさん
メモリの事に関しては、なぜ食うのか理由は聞いていないのですが、自分なりに考えた事は
「*で書いてあると、その配下のものを全てメモリに常駐させるのだろう」
ということです。
1つずつ明示的に書いてやれば、それだけしか呼ばれないのでその分メモリの使用量が減るのかなあ、と。直接メモリ管理で確認したわけではないので判りませんが^^;

>Tomscissorsさん
自分は客先常駐なので、その都度開発標準というものが変わります^^;
>でも実は、個人的に必要なもののみインポートされている方が、
>見てて気持ち良いというか自己満足に浸れるだけなのかも。
この意見にかんしては、同感です。
これとこれが必要だから、それ以外のものはないよって良くわかりますし。
まあ、そのおかげでimport文が30行とかになったりしますが(笑
maru
ぬし
会議室デビュー日: 2003/01/27
投稿数: 412
投稿日時: 2004-01-13 16:53
こんにちは。
私は基本的にテキストエディタで開発してますが、省略するかどうかは使い分けしてますね。

javax.swing やjava.awt、java.net、java.io などはよく使うので、*でひっくるめて、
その他のあまり使用しないものは、ヘルプで使い方を見ることも多いのでそのときに
ヘルプにかかれてるクラス階層からひっぱてきてクラス名を貼り付けてますね。

*で省略しても、すべてのクラスがロードされるということはありません。
http://milkyway.merseine.nu/Java/Java014.html


[ メッセージ編集済み 編集者: maru 編集日時 2004-01-13 16:59 ]
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2004-01-13 16:57
引用:

C'zkaさんの書き込み (2004-01-13 16:46) より:
>ukさん
メモリの事に関しては、なぜ食うのか理由は聞いていないのですが、自分なりに考えた事は
「*で書いてあると、その配下のものを全てメモリに常駐させるのだろう」
ということです。
1つずつ明示的に書いてやれば、それだけしか呼ばれないのでその分メモリの使用量が減るのかなあ、と。直接メモリ管理で確認したわけではないので判りませんが^^;


 確か、ukさんのおっしゃるように、実行時には関係なかったと思います。
以前、雑誌か何かで読んだ記憶があります。
なので、私は明示的にクラスを指定しなければならない場合以外は、
全て*でパッケージごとインポートしてます。
※java.util.Dateとjava.sql.Dateを一緒に使う場合等
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-01-13 17:01
引用:

C'zkaさんの書き込み (2004-01-13 16:46) より:
>ukさん
メモリの事に関しては、なぜ食うのか理由は聞いていないのですが、自分なりに考えた事は
「*で書いてあると、その配下のものを全てメモリに常駐させるのだろう」
ということです。
1つずつ明示的に書いてやれば、それだけしか呼ばれないのでその分メモリの使用量が減るのかなあ、と。直接メモリ管理で確認したわけではないので判りませんが^^;


import文を何のために指定するかわかっていますか? パッケージを省略して参照変数を宣言
した場合に、コンパイラがその変数がどのクラス/インタフェースに対するものかを特定する
ためのものなので、少なくとも実行時には関係ありません。またコンパイル時であっても、import文の指定の仕方によってコンパイルに無視できないほど大きな影響があるようなタコな
実装をするコンパイラはないだろう、と思いますが。

もっとも、オートコンプリートをサポートしているIDEを使用している場合は多少関係ある
かもしれませんね。それでもほとんどの場合無視できそうに思いますが。

スキルアップ/キャリアアップ(JOB@IT)