< prev index next >
src/java.base/share/classes/java/util/EnumSet.java
Print this page
rev 13463 : 8148044: Remove Enum[0] constants from EnumSet and EnumMap
Reviewed-by: TBD
@@ -75,12 +75,10 @@
* @author Josh Bloch
* @since 1.5
* @see EnumMap
* @serial exclude
*/
-@SuppressWarnings("serial") // No serialVersionUID due to usage of
- // serial proxy pattern
public abstract class EnumSet<E extends Enum<E>> extends AbstractSet<E>
implements Cloneable, java.io.Serializable
{
/**
* The class of all the elements of this set.
@@ -90,12 +88,10 @@
/**
* All of the values comprising T. (Cached for performance.)
*/
final Enum<?>[] universe;
- private static Enum<?>[] ZERO_LENGTH_ENUM_ARRAY = new Enum<?>[0];
-
EnumSet(Class<E>elementType, Enum<?>[] universe) {
this.elementType = elementType;
this.universe = universe;
}
@@ -419,10 +415,13 @@
* @serial include
*/
private static class SerializationProxy <E extends Enum<E>>
implements java.io.Serializable
{
+
+ private static final Enum<?>[] ZERO_LENGTH_ENUM_ARRAY = new Enum<?>[0];
+
/**
* The element type of this enum set.
*
* @serial
*/
@@ -455,10 +454,12 @@
Object writeReplace() {
return new SerializationProxy<>(this);
}
+ private static final long serialVersionUID = 1009687484059888093L;
+
// readObject method for the serialization proxy pattern
// See Effective Java, Second Ed., Item 78.
private void readObject(java.io.ObjectInputStream stream)
throws java.io.InvalidObjectException {
throw new java.io.InvalidObjectException("Proxy required");
< prev index next >