我试图在 Java 上使用静态导入,但我写错了
static import java.lang.System.out;
并且编译的代码(虽然找不到“out”符号),没有语法错误。
那么,“静态导入”究竟意味着什么?
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.
显然,这是一个错误。
我正在使用 Sun 的 Java 8(JDK 1.8)来测试 lambdas ......但我认为接受“静态导入”很奇怪。
感谢所有的答案。我要把这个报告给孙。:)
为了访问类的静态成员,您必须使用包含它的完整类名。例如,要访问类pi
中的值Math
,您必须使用java.lang.Math.PI
. 但是,如果您导入它 ( import static java.lang.Math.PI
),您可以在代码中只使用 usePI
来访问它。