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

java static import java-8

6209 观看

3回复

1439 作者的声誉

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

static import java.lang.System.out;

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

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

作者: paulotorrens 的来源 发布者: 2013 年 1 月 19 日

回应 (3)


0

2686 作者的声誉

要访问类的静态成员,必须使用包含它的完整类名。例如,要访问类中的piMath,必须使用java.lang.Math.PI。但是,如果你导入它(import static java.lang.Math.PI),你可以使用PI你的代码来访问它。

作者: Renjith 发布者: 19.01.2013 03:03

20

539691 作者的声誉

决定

这不应该编译。

static import java.lang.System.out;

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

import static java.lang.System.out;

在Java import语句的所有形式开头import关键字,我不认为有任何其他情况下(即除了import语句),其中import可使用的关键字。

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


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

作者: Stephen C 发布者: 19.01.2013 03:09

3

1439 作者的声誉

显然,这是一个错误。

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

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

作者: paulotorrens 发布者: 19.01.2013 03:44
32x32