6

这些陈述有什么不同吗

System.out.println(error);

PrintStream ps = new PrintStream((OutputStream)System.out);
ps.println(error);
4

3 回答 3

8

System.out已经是一个PrintStream

PrintStream ps = new PrintStream((OutputStream)(System.out));

只会再次包装它,这似乎毫无意义。

于 2013-02-06T10:11:31.593 回答
2

基本上没有区别。第二种方式太长了。out 是 System 类中 java.io.PrintStream 类型的静态字段。您可以直接使用它,而不是将其转换为 Outputstream 并再次将其包装在另一个 PrintStream 引用中。无论如何,它们都将使用相同的底层 PrintStream 对象。

于 2013-02-06T10:19:11.210 回答
1

除了您复制了out.

来自JavaDoc

出去

公共静态最终打印流输出

它已经是 type 了PrintStream

于 2013-02-06T10:11:45.020 回答