9

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

static import java.lang.System.out;

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

那么,“静态导入”究竟意味着什么?

4

3 回答 3

23

This should not compile.

static import java.lang.System.out;

According to the JLS, a single static import should look like this:

import static java.lang.System.out;

All forms of the Java import statement start with the import keyword, and I don't think there is any other context (i.e. apart from an import statement) in which the import keyword can be used.

Note: the import and static keywords are not modifiers in this context, so the "modifiers can be supplied in any order" meta-rule does not apply here.


In short, either your compiler / IDE is broken or confused ... or what you are looking at is not real Java source code.

于 2013-01-19T03:09:32.363 回答
3

显然,这是一个错误。

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

感谢所有的答案。我要把这个报告给孙。:)

于 2013-01-19T03:44:11.890 回答
0

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

于 2013-01-19T03:03:58.370 回答