Java的“静态导入”与“进口静态”在Java中8(Java “static import” vs.

2019-08-07 09:38发布

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

static import java.lang.System.out;

和代码编译(虽然“走出去”符号找不到),没有语法错误。

那么,什么是“静态导入”,其实是指?

Answer 1:

这不应该编译。

static import java.lang.System.out;

按照JLS ,单一的静态进口应该是这样的:

import static java.lang.System.out;

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

注: importstatic关键字却不在此背景下,因此这种元规则“修改器可以按任何顺序来提供”在这里并不适用。


总之,无论是你的编译器/ IDE坏了或困惑...或者你所看到的是不是真正的Java源代码。



Answer 2:

显然,这是一个错误。

我使用Java 8(JDK 1.8)来自Sun,为了测试lambda表达式...但我认为这是奇怪的“静态导入”被接受。

感谢所有的答案。 我对太阳会报告这个 :)



Answer 3:

为了访问类的静态成员,您必须使用包含它的全类名。 例如,访问pi的价值Math类,你必须使用java.lang.Math.PI 。 但是,如果你导入( import static java.lang.Math.PI ),您可以只用PI在代码中访问它。



文章来源: Java “static import” vs. “import static” in Java 8