当这样使用时:
import static com.showboy.Myclass;
public class Anotherclass{}
import static com.showboy.Myclass和import com.showboy.Myclass有什么区别?
当这样使用时:
import static com.showboy.Myclass;
public class Anotherclass{}
import static com.showboy.Myclass和import com.showboy.Myclass有什么区别?
当前回答
导入允许java程序员在没有包限定的情况下访问包的类。
静态导入特性允许在没有类限定的情况下访问类的静态成员。
导入提供了对类和接口的可访问性,而静态导入提供了对类的静态成员的可访问性。
例子:
与进口
import java.lang.System.*;
class StaticImportExample{
public static void main(String args[]){
System.out.println("Hello");
System.out.println("Java");
}
}
使用静态导入
import static java.lang.System.*;
class StaticImportExample{
public static void main(String args[]){
out.println("Hello");//Now no need of System.out
out.println("Java");
}
}
请参见:什么是Java 5中的静态导入
其他回答
import之后的静态修饰符用于检索/使用类的静态字段。我使用import static的一个地方是从类中检索常量。 我们也可以在静态方法上应用import static。确保输入import static,因为静态导入是错误的。
什么是Java中的静态导入- JavaRevisited -了解更多关于静态导入的很好的资源。
导入允许java程序员在没有包限定的情况下访问包的类。
静态导入特性允许在没有类限定的情况下访问类的静态成员。
导入提供了对类和接口的可访问性,而静态导入提供了对类的静态成员的可访问性。
例子:
与进口
import java.lang.System.*;
class StaticImportExample{
public static void main(String args[]){
System.out.println("Hello");
System.out.println("Java");
}
}
使用静态导入
import static java.lang.System.*;
class StaticImportExample{
public static void main(String args[]){
out.println("Hello");//Now no need of System.out
out.println("Java");
}
}
请参见:什么是Java 5中的静态导入
假设你在一个叫做MyClass的包里有静态字段和方法,你想通过键入myStaticField或myStaticMethod直接访问它们,而不是每次键入MyClass。myStaticField或MyClass.myStaticMethod。
注意:你需要做一个 进口myPackage。MyClass或myPackage.* 用于访问其他资源
静态导入的基本思想是,无论何时使用静态类、静态变量或枚举,都可以导入它们,从而避免键入。
我将举例说明我的观点。
import java.lang.Math;
class WithoutStaticImports {
public static void main(String [] args) {
System.out.println("round " + Math.round(1032.897));
System.out.println("min " + Math.min(60,102));
}
}
相同的代码,使用静态导入:
import static java.lang.System.out;
import static java.lang.Math.*;
class WithStaticImports {
public static void main(String [] args) {
out.println("round " + round(1032.897));
out.println("min " + min(60,102));
}
}
注意:静态导入会使你的代码读起来很混乱。
“import static com.showboy.”Myclass"和"import com.showboy.Myclass"?
第一个方法应该会产生编译器错误,因为静态导入只适用于导入字段或成员类型。(假设MyClass不是一个内部类或showboy的成员)
我想你的意思是
import static com.showboy.MyClass.*;
这使得MyClass中的所有静态字段和成员都可以在实际的编译单元中使用,而无需对它们进行限定…如上所述