8284036: Make ConcurrentHashMap.CollectionView a sealed hierarchy

Reviewed-by: smarks
This commit is contained in:
Jaikiran Pai 2022-04-11 01:24:18 +00:00
parent 92f5e42696
commit eb3ead96b3

View file

@ -4416,8 +4416,8 @@ public class ConcurrentHashMap<K,V> extends AbstractMap<K,V>
/** /**
* Base class for views. * Base class for views.
*/ */
abstract static class CollectionView<K,V,E> abstract static sealed class CollectionView<K,V,E>
implements Collection<E>, java.io.Serializable { implements Collection<E>, java.io.Serializable permits EntrySetView, KeySetView, ValuesView {
private static final long serialVersionUID = 7249069246763182397L; private static final long serialVersionUID = 7249069246763182397L;
final ConcurrentHashMap<K,V> map; final ConcurrentHashMap<K,V> map;
CollectionView(ConcurrentHashMap<K,V> map) { this.map = map; } CollectionView(ConcurrentHashMap<K,V> map) { this.map = map; }
@ -4589,7 +4589,7 @@ public class ConcurrentHashMap<K,V> extends AbstractMap<K,V>
* *
* @since 1.8 * @since 1.8
*/ */
public static class KeySetView<K,V> extends CollectionView<K,V,K> public static final class KeySetView<K,V> extends CollectionView<K,V,K>
implements Set<K>, java.io.Serializable { implements Set<K>, java.io.Serializable {
private static final long serialVersionUID = 7249069246763182397L; private static final long serialVersionUID = 7249069246763182397L;
@SuppressWarnings("serial") // Conditionally serializable @SuppressWarnings("serial") // Conditionally serializable