Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否应关闭不包含资源的格式化程序?_Java - Fatal编程技术网

Java 是否应关闭不包含资源的格式化程序?

Java 是否应关闭不包含资源的格式化程序?,java,Java,例如,我有一个新的格式化程序(新的StringWriter())。我是否应该关闭格式化程序,即使它没有任何非内存资源?关闭StringWriter无论如何都没有效果 我可以想象,如果我将实现从StringWriter更改为其他内容,那么以后会忘记做这件事。但另一方面,不必要的关闭只会使代码混乱。不,在这种情况下,没有令人信服的理由让您关闭格式化程序 你有没有写过: Writer formatted; formatted = new StringWriter(); Formatter format

例如,我有一个
新的格式化程序(新的StringWriter())
。我是否应该关闭格式化程序,即使它没有任何非内存资源?关闭StringWriter无论如何都没有效果


我可以想象,如果我将实现从StringWriter更改为其他内容,那么以后会忘记做这件事。但另一方面,不必要的关闭只会使代码混乱。

不,在这种情况下,没有令人信服的理由让您关闭
格式化程序

你有没有写过:

Writer formatted;
formatted = new StringWriter();
Formatter formatter = new Formatter(formatted, Locale.US);
那么你应该打电话:


即使它没有效果,因为现在
格式化的
变量被声明为接口类型
Writer
,以后可以实现为真正的
可关闭的
类型,例如
PrintWriter

“应该”意味着我不习惯的义务级别。你为什么不关上它?特别是因为try-with-resources使这样做变得微不足道。在这种特殊情况下,我不能使用Java1.7,所以try-with-resources不可用。否则,这确实是一个干净的解决方案。至于我为什么不,我想这是我问题的一部分;是否有令人信服的理由不这样做。我想到的一个问题是,在没有必要的时候,用closes把代码弄得乱七八糟。
formatter.close();