use*_*514 46 java printing libraries
我见过一些代码如:
out.println("print something");
Run Code Online (Sandbox Code Playgroud)
我试过了 import java.lang.System;
但它不起作用.你怎么用的out.println()
?
sfu*_*ger 86
静态导入可以解决问题:
import static java.lang.System.out;
Run Code Online (Sandbox Code Playgroud)
或者使用导入每个静态方法和字段
import static java.lang.System.*;
Run Code Online (Sandbox Code Playgroud)
@Steve C的附录:请注意@sfussenegger在对我的答案的评论中这样说.
"使用System.out的这种静态导入不仅仅适用于简单的一次性运行代码."
所以请不要想象他(或我)认为这个解决方案是良好实践.
tan*_*ens 26
PrintStream out = System.out;
out.println( "hello" );
Run Code Online (Sandbox Code Playgroud)
Ste*_*n C 16
@sfussenegger的回答解释了如何使这项工作.但我会说不要这样做!
经验丰富的Java程序员使用,并期望看到
System.out.println(...);
Run Code Online (Sandbox Code Playgroud)
并不是
out.println(...);
Run Code Online (Sandbox Code Playgroud)
System.out或System.err的静态导入是(IMO)错误样式,因为:
如果您发现自己对System.out或System.err进行了大量输出,我认为将流抽象为属性,局部变量或方法会更好.这将使您的应用程序更可重用.
嗯,你通常会使用
System.out.println("print something");
Run Code Online (Sandbox Code Playgroud)
这不需要任何进口.但是,由于out是System内部的静态字段,您可以编写使用静态导入,如下所示:
import static java.lang.System.*;
class Test {
public static void main(String[] args) {
out.println("print something");
}
}
Run Code Online (Sandbox Code Playgroud)
看看这个链接.通常,只有在使用特定类的许多静态方法时才会这样做,比如我一直使用junit asserts和easymock.