java静态导入编译错误

java静态导入编译错误,java,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 cla

使用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);
    }
}
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");
    }
}
TestStatic:

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);
    }
}
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");
    }
}

importstatic用于导入类的静态成员,而不是整个类。您可以说“import static testpackage.TestStatic.TestStatic;”


编辑:固定语法

当你说
导入静态testpackage.TestStatic编译器不知道要导入的内容,可以指在类
testpackage
中导入静态变量
TestStatic
。事实上,我认为您想要从
testpackage.testStatic
类导入
testStatic()

对于名称为的方法或字段

对于所有静态方法和字段


你说的一切都是真的。你在问什么和/或抱怨什么?导入static testpackage.TestStatic.*;或者只导入您需要的内容,例如:import static testpackage.TestStatic.TestStatic;导入静态testpackage.TestStatic.main;你的IDE没有给你以上两个选项吗?它是
importstatictestpackage.TestStatic.TestStatic非常感谢您提供的信息。如果我想导入类以及静态方法和字段,我需要有两个导入语句吗?导入静态testpackage.TestStatic.*;导入测试包。*;也许是这样。我不确定您到底想做什么——如果您只是执行“importtestpackage.TestStatic”,您就可以访问整个类,静态和动态成员。在这种情况下,您必须将TestStatic的成员称为“TestStatic.TestStatic()”而不仅仅是“TestStatic()”,但这似乎比两次尝试导入静态成员更容易混淆。(但是,至于技术上会发生什么,我不知道;你可能是对的——试试看!)非常感谢你提供的信息。如果我想导入类以及静态方法和字段,我需要有两个导入语句吗?导入静态testpackage.TestStatic.*;导入测试包。*;