今天发现Java中import包时,带*(星号)的一个问题。下面附上代码和截图:
在我的电脑"E:\csdn\"目标下有两个java文件: Print.java和Demo.java
Print.java代码如下:
package util;
public class Print{
public static void print(Object obj){
System.out.print(obj);
}
}
Demo.java代码如下:
import util.Print;
public class Demo{
public static void main(String[] args){
Print.print("HelloWorld!");
}
}
1、在cmd中用javac将上面两个java类编译成class文件,如下:
2、执行javac命令后,"E:\csdn\"目录和"E:\csdn\util"目录如下:
3、然后对Demo.java类执行java命令
我相信到这一步,大家都觉得没有问题,那么接下来问题来了。
4、我们把Demo.java类中的import util.Print改为import util.*,如下:
import util.*;
public class Demo{
public static void main(String[] args){
Print.print("HelloWorld!");
}
}
5、然后重新编译Demo.java类,按道理来讲应该不会有问题,可是编译后发现有问题,如下:
6、然后我发现如果把Print.java文件删了,然后再编译Demo.java类就不会报错,而且能成功执行
最后,不知道有哪位大神知道原因?为什么import包中加*,要删除java文件才能执行。