На самом деле это невозможно.Прямо или косвенно вы создаете хотя бы один экземпляр NumberFormat
.Вы можете уменьшить количество этих экземпляров.
Использование static
объекта:
public static final NumberFormat formatShares = NumberFormat.getInstance();
static {
formatShares.setGroupingUsed(true);
formatShares.setMaximumFractionDigits(0);
}
Это неправильно для нескольких потоков, поскольку NumberFormat
не является потокомсохранено.
Использование ThreadLocal
для использования в экземпляре для потока:
public static final ThreadLocal<NumberFormat> threadLocalFormatShares = ThreadLocal.withInitial(() -> {
NumberFormat nf = NumberFormat.getInstance();
nf.setGroupingUsed(true);
nf.setMaximumFractionDigits(0);
return nf;
});
NumberFormat formatShares = threadLocalFormatShares.get();
Я думаю, что это может решить вашу проблему.