Java 8中的Java“静态导入”与“导入静态”

时间:2013-01-19 02:59:21

标签: java static import java-8

我试图在Java上使用静态导入,但我写错了

static import java.lang.System.out;

编译的代码(虽然找不到“out”符号),没有语法错误。

那么,“静态导入”实际上意味着什么?

3 个答案:

答案 0 :(得分:20)

这不应该编译。

static import java.lang.System.out;

根据JLS,单个静态导入应如下所示:

import static java.lang.System.out;

所有形式的Java import语句都以 import关键字开头,我认为没有任何其他上下文(即除了import语句之外){可以使用{1}}关键字。

注意:importimport关键字在此上下文中不是修饰符,因此“修饰符可以按任何顺序提供”元规则不适用于此。


简而言之,要么您的编译器/ IDE被破坏或混淆......或者您所看到的不是真正的Java源代码。

答案 1 :(得分:3)

显然,这是一个错误。

我正在使用Sun的Java 8(JDK 1.8)来测试lambdas ......但我认为接受“静态导入”很奇怪。

感谢所有答案。我要向孙报告这件事。 :)

答案 2 :(得分:0)

要访问类的静态成员,必须使用包含它的完整类名。例如,要访问pi类中的Math值,您必须使用java.lang.Math.PI。但是,如果您导入它(import static java.lang.Math.PI),则只需在代码中使用PI即可访问它。