|
不过上面的还不算太乱,如果同一目录中存在不同级别package的类就更有趣了。
import dir1.*;
import dir2.*;
import dir1.dir2.*;
public class Test{
public static void main(String [] args){
System.out.println(SomeClass.name);
System.out.println(dir1.SomeClassDir1.name);
System.out.println(dir2.SomeClassDir2.name);
System.out.println(dir1.dir2.SomeClassDir2Level2.name);
}
}
import dir1.SomeClassDir1;
import dir2.SomeClassDir2;
import dir1.dir2.SomeClassDir2Level2;
public class Test2{
public static void main(String [] args){
System.out.println(SomeClass.name);
System.out.println(SomeClassDir1.name);
System.out.println(SomeClassDir2.name);
System.out.println(SomeClassDir2Level2.name);
}
}
package dir1.dir2;
public class SomeClassDir2Level2{
public static String name="SomeClassDir2Level2";
}
javac -cp .;dir1\;dir1\dir2\dir3 Test.java
javac -cp .;dir1\;dir1\dir2\dir3 Test2.java
java -cp .;dir1\;dir1\dir2\dir3 Test
java -cp .;dir1\;dir1\dir2\dir3 Test2
编译运行正常
不过在试的过程中,发现import的写法和写完整类名之间还有一定的关系。尤其是在同一目录下多个不同级别的包共存的情况下,import package.*的写法是行不通的。要么写全类名,要么import完整类名。 |
|