java.util.Collections
в настоящее время предоставляет следующие служебные методы для создание synchronized
оболочки для различных интерфейсов коллекций:
synchronizedCollection(Collection<T> c)
< / а>synchronizedList(List<T> list)
< / а>synchronizedMap(Map<K,V> m)
< / а>synchronizedSet(Set<T> s)
< / а>synchronizedSortedMap(SortedMap<K,V> m)
< / а>synchronizedSortedSet(SortedSet<T> s)
< / а>
Аналогично, у него еще 6 unmodifiedXXX
перегрузок.
Явным упущением здесь являются служебные методы для _10 _ а>. Это правда, что это extends SortedMap
, но также SortedSet extends Set
, Set extends Collection
и Collections
имеют специальные служебные методы для SortedSet
и Set
. Предположительно NavigableMap
- полезная абстракция, иначе ее бы вообще не было, и все же для нее нет служебных методов.
Итак, вопросы:
- Есть ли конкретная причина, по которой
Collections
не предоставляет служебные методы дляNavigableMap
? - How would you write your own
synchronized
wrapper forNavigableMap
?- Glancing at the source code for OpenJDK version of
Collections.java
seems to suggest that this is just a "mechanical" process- Is it true that in general you can add
synchronized
thread-safetiness feature like this? - Если это такой механический процесс, можно ли его автоматизировать? (Плагин Eclipse и т. Д.)
- Необходимо ли это повторение кода или его можно было бы избежать с помощью другого шаблона проектирования ООП?
- Is it true that in general you can add
- Glancing at the source code for OpenJDK version of