java静态导入编译错误
使用java版本1.7.0_05 当我编译下面的代码时,它给了我testpackage找不到的错误。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
但是,如果我从“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.*;导入测试包。*;