3

誰かが私にJavaのインポートステートメントを説明できますか?一部のインポートには*接尾辞が付いていますが、そうでないものもあります。これら2つの違いは何ですか?importステートメントで*を使用すると、すべてのクラスがインポートされますか?

ここを参照してくださいインポート

ここで彼らは、importステートメントはネストされているように見えますが、そうではないと言っています。誰かが詳細に説明できますか?

4

4 に答える 4

11

の使用は*悪い習慣と見なされます。そのパッケージ内のすべてのファイルをインポートするために使用されます。これを行うためのより正しい方法は、特に IDE の外部でコード レビューを行っていて、使用しているクラスのバージョンを知る必要があるシナリオで、必要な各クラスをリストすることです。基本的に、それは開発チームの怠惰を助長します。

コメント

私が述べたように、これは「悪い」習慣ではないと主張する人のために。これが良い習慣だとどうして言えるでしょうか。

import java.util.*;  
import java.io.*;

コンパイラが、インポートした*を除く の下のすべてを無視したとしても、将来コードを調べる人にとって、これはどのように役立つのでしょうか? Listここにいる多くの人は、コードを書いているのは人間のためであり、コンピューターのためではないことを忘れていると思います。さらに、Java がなくなり、SuperAwesomeLanguage を使用している場合、このコードをどのように変換できますか? 次の例が与えられた場合、Java の知識がゼロの場合は、これを新しい言語に変換してください。

public class Foo  
{
    private List list;
}

ですか?List_ 必要ですかioio問題は、あなたが知らないことです。したがって、明確にすることで、将来の開発者にどのクラスが必要かを案内できます。

于 2013-02-15T15:04:26.847 に答える
1

import ステートメントで * を使用すると、すべてのクラスがインポートされますか?

はい。

オラクルのドキュメントから:

type-import-on-demand 宣言を使用すると、名前付きパッケージまたは型のすべてのアクセス可能な型を必要に応じてインポートできます。

于 2013-02-15T15:03:16.187 に答える
1

あなたのリンクから:

import java.util.*;

* は、任意の文字の組み合わせに一致する「正規表現演算子」です。したがって、この import ステートメントは java.util 内のすべてをインポートします。上記のサンプル プログラムを入力して実行しようとした場合は、インポート ステートメントを次のように変更できます。

そうです * 接尾辞は、このパスのすべてのクラスをインポートします

于 2013-02-15T15:06:26.713 に答える
1
import com.example.*

com.example パッケージ内のすべてのクラスをインポートします

import com.example.ClassName

ClassName クラスのみをインポートします

于 2013-02-15T15:06:37.500 に答える