当我可以导入静态java.lang.Math.abs时,我无法导入静态java.lang.System.out.println,这似乎很奇怪.这背后有什么原因,或者我做的事情真的很愚蠢,我现在还没看到?(使用Eclipse.)
Str*_*ior 52
Math是一个类,其上abs是静态方法.System.out是静态字段而不是类.所以它的println方法实际上不是静态方法,而是静态字段上的实例方法.
rat*_*eak 19
因为java.lang.System.out是您调用的静态对象(PrintStream)println.
虽然在日食中你可以输入sysout然后按ctrl- space将它扩展到System.out.println();
无法以这种方式导入非静态方法,但是您可以这样做
public static void println() {
System.out.println();
}
// elsewhere
println(); // can be inlined
Run Code Online (Sandbox Code Playgroud)
彼得的回答似乎是最好的解决方法.但没有论据,用例有点受限.
static<T> void println(T arg) { System.out.println(arg); }
Run Code Online (Sandbox Code Playgroud)