Bla*_*man 33 java memory-management freemarker stringwriter
我意识到在java中GC最终会清理对象,但是我问是不是关闭你的字符串编写器是不好的做法,目前我这样做:
private static String processTemplate(final Template template, final Map root) {
StringWriter writer = new StringWriter();
try {
template.process(root, writer);
} catch (TemplateException e) {
logger.error(e.getMessage());
} catch (IOException e) {
logger.error(e.getMessage());
}
finally {
}
return writer.toString();
}
Run Code Online (Sandbox Code Playgroud)
我应该关闭编写器并创建一个像这样的新String:
String result = "";
...
finally {
result = writer.toString();
writer.close();
}
Run Code Online (Sandbox Code Playgroud)
这样做更好吗?
ass*_*ias 72
该javadoc的是比较明确:
关闭StringWriter无效.
快速查看代码就可以确认:
public void close() throws IOException {
}
Run Code Online (Sandbox Code Playgroud)