2010-03-03 20 views

Odpowiedz

16

Jego stan jest tylko

private final String separator; 

Więc tak to threadsafe.

+2

@Pangea - To threadsafe teraz. Jeśli nie jest to udokumentowane jako bezpieczne dla wątków, może się to zmienić w przyszłości. – Robin

+1

Co więcej, skoro jest to taki tani obiekt do stworzenia, dlaczego nie utworzyć go lokalnie w razie potrzeby? Unikaj dzielenia go między wątkami. – daveb

+7

@Robin, to rozsądna rada. Choć udokumentowane lub nie, byłoby strasznie socjopatycznym z każdego opiekuna biblioteki, aby zmienić klasę z wątków, aby nie była bezpieczna dla wątków po jej wydaniu! Nie zrobimy tego tobie. –

28

Tak! Nie zamierzamy powtarzać błędów SimpleDateFormat. :-)

Joiner musi otrzymać podobną aktualizację dokumentacji, która ma co jej siostra Splitter dostał klasa, która mówi:

* <p><b>Warning: splitter instances are always immutable</b>; a configuration 
* method such as {@code omitEmptyStrings} has no effect on the instance it 
* is invoked on! You must store and use the new splitter instance returned by 
* the method. This makes splitters thread-safe, and safe to store as {@code 
* static final} constants . . . 
+8

Doktor Joiner został naprawiony. http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/base/Joiner.html –

Powiązane problemy