使用java version 1.7.0_05
当我编译下面的代码,它给我testpackage无法找到错误。
但是如果我从"import static testpackage.TestStatic;"中去掉static关键字,它就编译成功了。
测试:
import java.io.*;
import java.util.*;
import static testpackage.TestStatic;
import static java.lang.Integer.MAX_VALUE;
public class Test {
public static void main(String args[]) {
System.out.println("hello world");
System.out.println("Maximum value of int variable using " +
"static import : "
+ MAX_VALUE);
}
}
TestStatic:
package testpackage;
import java.io.*;
import java.util.*;
public class TestStatic {
public static void testStatic() {
System.out.println("Inside Test Static");
}
public void testNormal(){
System.out.println("test normal");
}
public static void main(String args[]) {
System.out.println("hello world");
}
}
import static用于导入类的静态成员,而不是整个类。你可以说"import static testpackage.TestStatic.testStatic;"
修改语法
当您说import static testpackage.TestStatic;
编译器不知道您要导入的内容时,您的意思可能是在类testpackage
中导入静态变量TestStatic
。实际上,我认为您想从testpackage.TestStatic
类中导入testStatic()
,
对于名称
的方法或字段import static testpackage.TestStatic.testStatic;
对于所有静态方法和字段
import static testpackage.TestStatic.*;