有没有办法在循环中重用Formatter对象?

H2O*_*aCl 3 java formatter

有没有办法在循环中重用Formatter或者我只是实例化并让垃圾收集器处理它?(这是一个Java问题).请注意,如果我将实例化从循环中取出,则循环中先前迭代的格式化内容将被附加到.Formatter.flush()似乎只是刷新,它的名称是真的,并没有提供允许重复使用干净的平板的好处.

例:

for (...)
{
    Formatter f = new Formatter();
    f.format("%d %d\n", 1, 2);
    myMethod(f.toString());
}
Run Code Online (Sandbox Code Playgroud)

Wal*_*inz 9

你可以像这样使用它:

StringBuilder sb = new StringBuilder();
Formatter f = new Formatter(sb);

for (...)
{
    f.format("%d %d\n", 1, 2);
    myMethod(sb.toString());
    sb.setLength(0);
}
Run Code Online (Sandbox Code Playgroud)

这将重用Formatter和StringBuilder,这可能会或可能不会为您的用例带来性能提升.