java - 为什么不将 System.out 重命名为 PrintWriter?

标签 java

出于简单的懒惰原因,我对必须在 Java 代码中键入完整的 System.out.println("..."); 感到恼火。为什么这样做会是糟糕的编程实践(如果有的话)?

import java.io.PrintWriter;
public class RenameSystemOut{
    public static void main(String[] args){
        PrintWriter w = new PrintWriter(System.out);
        w.println("Hello, world");
        w.close();
    }
}

我的猜测是,程序员可能会忘记 close() 资源。但我想,在一个包含许多打印语句的长程序中,您可以节省很多麻烦。

最佳答案

为什么不使用导入静态:

import static java.lang.System.out;

public class App {

    public static void main(final String[] args) throws Exception {
        out.println("TEST");
    }
}

如果您使用像 3 大 IDE 之一这样的不错的 IDE,那么您可以让它在 NetBeans 中为您输入内容:

sout选项卡测试

将产生:

System.out.println("TEST");

顺便说一句,我不确定为什么需要将 PrintWriter System.out 包装在另一个 PrintWriter 中;你可以这样做:

PrintWriter w = System.out;

并且您不应该在 stdout 上调用 close()...

关于java - 为什么不将 System.out 重命名为 PrintWriter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22746689/

相关文章:

java - 删除相邻重复字母时的 StringIndexOutOfBounds

Java:如何使我的程序打印时没有两个额外的点?

仅接受特定范围值的 Java 变量

java - 返回字符串数组的递归函数(JAVA)

java - Java 中的线程

java - 如何使用 XMLReader 解析 xml 文件

elasticsearch - 如何在 Elasticsearch 中使用 Java API 将响应按月份划分并添加计数器

Java hibernate加入继承(未找到)

java - jackson 无法实例化 ArrayList

java - 如何使用 SMSlib 更改从 gsm 调制解调器向我的应用程序通知新消息的时间段