2010-03-03 3 views

ответ

16

Его единственное состояние является

private final String separator; 

Так да это поточно.

+2

@Pangea - Это поточно настоящее. Если он не документирован как потокобезопасный, это может измениться в будущем. – Robin

+1

Кроме того, поскольку это такой дешевый объект для создания, почему бы не создать его локально, когда это необходимо? Избегайте совместного использования его между потоками. – daveb

+7

@ Робин, это разумный совет. Несмотря на то, что документально или нет, было бы ужасно социопатично любому поддерживающему библиотеку изменять класс из потокобезопасного, а не потокобезопасного после его выпуска! Мы этого не сделаем. –

28

Да! Мы не собираемся повторять ошибки SimpleDateFormat. :-)

Joiner необходимо получить аналогичное обновление документации к тому, что у ее сестры класса Splitter, который говорит:

* <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

Теперь был исправлен столярный документ. http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/base/Joiner.html –