Rozważmy następujący kod:Czy NumberFormat.getInstance gwarantuje utworzenie nowej instancji?
NumberFormat format = NumberFormat.getInstance();
format.setMinimumFractionDigits(spotDecimalPlaces);
format.setMaximumFractionDigits(spotDecimalPlaces);
Is It "bezpieczne"? Czy za każdym razem NumberFormat.getInstance()
gwarantuje zwrócenie nowego obiektu NumberFormat
?
Czy istnieje możliwość, że getInstance()
zwróci to samo wystąpienie? (W tym przypadku ten kod wpłynęłoby wszędzie indziej na JVM, co dzieje się w użyciu getInstance
...)
Patrząc na kod źródłowy to wydaje jak zwraca nową instancję za każdym razem. JavaDoc jest frustrująco niewyraźny w tej sprawie.
Jeśli powyższy kod naprawdę jest "bezpieczny", to wydaje mi się, że getInstance()
jest złą nazwą dla tej metody - że powinien on był nazywać się createInstance()
.
Czy NumberFormat.getInstance()
jest gwarantowane, że zawsze zwraca nowe wystąpienie?
Jeśli jest niejasne wtedy nie będę polegać na nim w ogóle –
Tak zapewne najbardziej solidnych rzeczy do do to jest utworzenie nowego DecimalFormat. Naprawdę nie chcę, aby obecne "locale" wpłynęło na zachowanie w każdym przypadku ... –