应该关闭没有资源的Formatter吗?

时间:2014-10-16 12:28:27

标签: java

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

如果我将实现从StringWriter更改为其他内容,我可以想象以后忘记执行此操作。但另一方面,不必要的关闭只会使代码混乱。

1 个答案:

答案 0 :(得分:0)

不,IMO没有令人信服的理由说明为什么应该在这种情况下关闭Formatter

如果你写了:

Writer formatted;
formatted = new StringWriter();
Formatter formatter = new Formatter(formatted, Locale.US);

然后可以说应该致电:

formatter.close();

即使它没有任何效果,因为现在formatted变量被声明为接口类型Writer,后来可以实现为真正的closable类型,例如PrintWriter