这些语句有什么不同?
System.out.println(error);
AND
PrintStream ps = new PrintStream((OutputStream)System.out);
ps.println(error);
System.out.println(error);
AND
PrintStream ps = new PrintStream((OutputStream)System.out);
ps.println(error);
System.out
已经是一个 PrintStream
对象了。
PrintStream ps = new PrintStream((OutputStream)(System.out));
基本上没有区别。第二种方法太冗长了。out是System类中类型为java.io.PrintStream的静态字段。您可以直接使用它,而不是将其强制转换为Outputstream,然后再将其包装在另一个PrintStream引用中。无论如何,它们都将使用相同的底层PrintStream对象。