Java静态导入编译错误



使用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.*;

相关内容

最新更新