Java奇怪的静态导入

时间:2014-03-08 14:16:05

标签: java

package pack1;

public class A {

    public static int i = 10;
    public static void test()  {
        System.out.println("done");
    }
}

这是单独的.class文件:

package pack2;
import pack1.A.*;
public class Manager0  {

    public static void main(String args [] ) {

        System.out.println(A.i);
        A.test();
    }
}

当我运行Manager0类时,它显示错误,因为我使用了import pack1.A.*;而不是import pack1.A;,但为什么import pack1.A.*;不起作用?我的意思是import pack1.A.*;意味着导入课程A中的所有内容?

1 个答案:

答案 0 :(得分:1)

您正在寻找static次导入。那应该是:

import static pack1.A.*;

..你应该真的避免它,特别是那样用。如果您想要特定成员,请使用其名称专门导入。

没有static失败,因为您无法非静态地导入类的成员。您只能使用所谓的按需导入,从特定软件包导入类,或者静态导入按需导入以导入static成员一堂课。