4

私は自分importの s でいくつかの予期しない結果に気付きました。実際に何が起こっているのかを理解したいと思っています。私は次のことから始めました:

import java.util.*;
import java.io.*;
import java.nio.*;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption.*;
import java.nio.file.Paths;

そして、それが機能しなかったことがわかりましたArrayList...ListIteratorだから私は追加しました

import java.util.ArrayList;
import java.util.ListIterator;

すべてが完璧に機能します。

java.util.*ともインポートされたArrayListと思いListIteratorます。なぜそうしなかったのですか?

私は、クラス/メソッド/変数名を過度に冗長にする傾向があり、プログラムの残りの部分には、予約語に近いものさえ見つかりませんでした。

これが発生する理由を示唆するドキュメントには何も見つかりません。スタックに関する議論のほとんどは、* と明示的にコード化されたインポートを使用した最適化に関するものです。

この動作を理解するために他に何を見ることができるか、誰にもアイデアがありますか?

4

2 に答える 2

6

import java.util.* 間違いなくインポートjava.util.ArrayListし、そのパッケージ内の他のすべても。サブパッケージの概念がないため、java.util.xまたはから何もインポートjava.util.yしないことに注意してください。ただし、問題には当てはまらないようです。

コードが機能しない場合は、コードに他の問題が発生している必要があります。インポートステートメントは、説明したとおりに動作します。

于 2012-04-25T11:46:17.900 に答える
0

i have tried in eclipse.

import java.util.*;

these both the classes no need import again.

import java.util.ArrayList;
import java.util.ListIterator;

because wild card * means import all sub classes and packages (remember not package sub class)

if you import

import java.util.*;

i will import java.util.jar package but not jar subclasses :)

于 2012-04-25T11:47:17.657 に答える