2014-10-16 19 views
0

我有例如一個new Formatter(new StringWriter())。我應該關閉格式化程序,即使它沒有保存任何非內存資源?無論如何,關閉StringWriter都不起作用。應該關閉一個不佔用資源的格式化程序?

我可以想象,如果我將實現從StringWriter更改爲其他內容,稍後忘記做。但另一方面,不必要的關閉會使代碼混亂。

+0

「應該」意味着我不滿意的義務水平。爲什麼*不會*關閉它? 特別是因爲嘗試與資源使得這樣做微不足道。 – 2014-10-16 12:57:00

+0

在這種特殊情況下,我無法使用Java 1.7,因此try-with-resources不可用。否則,這確實是一個乾淨的解決方案。至於爲什麼我不會,我認爲這是我的問題的一部分;是否有令人信服的理由不這樣做。一個想到的是在沒有必要的時候關閉代碼。 – jhyot 2014-10-17 16:30:01

回答

0

不,國際海事組織沒有令人信服的理由,爲什麼你在這種情況下你應該應該關閉Formatter

要是你,而不是寫:

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

那麼可以說你應該電話:

formatter.close(); 

即使它不會有任何影響,因爲現在formatted變量聲明爲的接口類型Writer,稍後可以實現爲closable類型,例如PrintWriter

相關問題