这是另一个问题:
package p1;
public class Temp {
public static int x=10;
public static void show(){
System.out.println("hello from show");
}
}
这是我的第二个文件的代码:
package p2;
import p1.*;
import static java.lang.System.*;
class StaticImport {
public static void main(String[] args) {
System.out.println(Temp.x);
Temp.show();
out.println(Temp.x + "hello");
}
}
现在这个程序正在运行,输出是:
10
hello from show
10hello
我尝试将用户定义的包导入到另一个包,并设置了我的类路径。Java 规则说,当使用静态类导入时,所有方法和数据成员都可以在不使用类名的情况下访问。
package p2;
import static p1.Temp;
import static java.lang.System.*;
class StaticImport {
public static void main(String[] args) {
System.out.println(x);
show();
out.println(x + "hello");
}
}
我得到了这个错误。为什么我不能将用户定义的包导入另一个包?
C:\java\static_import>javac -d . StaticImport.java
StaticImport.java:3: error: cannot find symbol
import static p1.Temp;
^
symbol: class p1
StaticImport.java:3: error: static import only from classes and interfaces
import static p1.Temp;
^
StaticImport.java:8: error: cannot find symbol
System.out.println(x);
^
symbol: variable x
location: class StaticImport
StaticImport.java:9: error: cannot find symbol
show();
^
symbol: method show()
location: class StaticImport
StaticImport.java:10: error: cannot find symbol
out.println(x + "hello");
^
symbol: variable x
location: class StaticImport
5 errors