java静态导入编译错误

时间:2014-07-14 02:58:29

标签: java

使用java版本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");
    }
}

2 个答案:

答案 0 :(得分:6)

import static用于导入类的静态成员,而不是整个类。你可以说"导入静态testpackage.TestStatic.testStatic;"。

编辑:修正语法

答案 1 :(得分:1)

当您说import static testpackage.TestStatic;编译器不知道您要导入的内容时,您可能意味着在类TestStatic中导入静态变量testpackage。实际上,我认为您想要从testStatic()

导入testpackage.TestStatic

对于名称

的方法或字段
import static testpackage.TestStatic.testStatic;

适用于所有静态方法和字段

import static testpackage.TestStatic.*;