public class java.util.EnumMap<K extends java.lang.Enum<K>, V> extends java.util.AbstractMap<K, V> implements java.io.Serializable, java.lang.Cloneable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: java.util.EnumMap
super_class: java.util.AbstractMap
{
private final java.lang.Class<K> keyType;
descriptor: Ljava/lang/Class;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/Class<TK;>;
private transient K[] keyUniverse;
descriptor: [Ljava/lang/Enum;
flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
Signature: [TK;
private transient java.lang.Object[] vals;
descriptor: [Ljava/lang/Object;
flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
private transient int size;
descriptor: I
flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
private static final java.lang.Object NULL;
descriptor: Ljava/lang/Object;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private transient java.util.Set<java.util.Map$Entry<K, V>> entrySet;
descriptor: Ljava/util/Set;
flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
Signature: Ljava/util/Set<Ljava/util/Map$Entry<TK;TV;>;>;
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 458661240069192865
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.util.EnumMap$1
dup
invokespecial java.util.EnumMap$1.<init>:()V
putstatic java.util.EnumMap.NULL:Ljava/lang/Object;
1: return
LocalVariableTable:
Start End Slot Name Signature
private java.lang.Object maskNull(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 1
getstatic java.util.EnumMap.NULL:Ljava/lang/Object;
goto 2
StackMap locals:
StackMap stack:
1: aload 1
StackMap locals:
StackMap stack: java.lang.Object
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/EnumMap<TK;TV;>;
0 3 1 value Ljava/lang/Object;
MethodParameters:
Name Flags
value
private V unmaskNull();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getstatic java.util.EnumMap.NULL:Ljava/lang/Object;
if_acmpne 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 1
StackMap locals:
StackMap stack: java.lang.Object
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/EnumMap<TK;TV;>;
0 3 1 value Ljava/lang/Object;
Signature: (Ljava/lang/Object;)TV;
MethodParameters:
Name Flags
value
public void <init>(java.lang.Class<K>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.util.AbstractMap.<init>:()V
1: aload 0
iconst_0
putfield java.util.EnumMap.size:I
2: aload 0
aload 1
putfield java.util.EnumMap.keyType:Ljava/lang/Class;
3: aload 0
aload 1
invokestatic java.util.EnumMap.getKeyUniverse:(Ljava/lang/Class;)[Ljava/lang/Enum;
putfield java.util.EnumMap.keyUniverse:[Ljava/lang/Enum;
4: aload 0
aload 0
getfield java.util.EnumMap.keyUniverse:[Ljava/lang/Enum;
arraylength
anewarray java.lang.Object
putfield java.util.EnumMap.vals:[Ljava/lang/Object;
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/util/EnumMap<TK;TV;>;
0 6 1 keyType Ljava/lang/Class<TK;>;
Signature: (Ljava/lang/Class<TK;>;)V
MethodParameters:
Name Flags
keyType
public void <init>(java.util.EnumMap<K, ? extends V>);
descriptor: (Ljava/util/EnumMap;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.util.AbstractMap.<init>:()V
1: aload 0
iconst_0
putfield java.util.EnumMap.size:I
2: aload 0
aload 1
getfield java.util.EnumMap.keyType:Ljava/lang/Class;
putfield java.util.EnumMap.keyType:Ljava/lang/Class;
3: aload 0
aload 1
getfield java.util.EnumMap.keyUniverse:[Ljava/lang/Enum;
putfield java.util.EnumMap.keyUniverse:[Ljava/lang/Enum;
4: aload 0
aload 1
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
invokevirtual java.lang.Object[].clone:()Ljava/lang/Object;
checkcast java.lang.Object[]
putfield java.util.EnumMap.vals:[Ljava/lang/Object;
5: aload 0
aload 1
getfield java.util.EnumMap.size:I
putfield java.util.EnumMap.size:I
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/util/EnumMap<TK;TV;>;
0 7 1 m Ljava/util/EnumMap<TK;+TV;>;
Signature: (Ljava/util/EnumMap<TK;+TV;>;)V
MethodParameters:
Name Flags
m
public void <init>(java.util.Map<K, ? extends V>);
descriptor: (Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.util.AbstractMap.<init>:()V
1: aload 0
iconst_0
putfield java.util.EnumMap.size:I
2: aload 1
instanceof java.util.EnumMap
ifeq 9
3: aload 1
checkcast java.util.EnumMap
astore 2
start local 2 4: aload 0
aload 2
getfield java.util.EnumMap.keyType:Ljava/lang/Class;
putfield java.util.EnumMap.keyType:Ljava/lang/Class;
5: aload 0
aload 2
getfield java.util.EnumMap.keyUniverse:[Ljava/lang/Enum;
putfield java.util.EnumMap.keyUniverse:[Ljava/lang/Enum;
6: aload 0
aload 2
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
invokevirtual java.lang.Object[].clone:()Ljava/lang/Object;
checkcast java.lang.Object[]
putfield java.util.EnumMap.vals:[Ljava/lang/Object;
7: aload 0
aload 2
getfield java.util.EnumMap.size:I
putfield java.util.EnumMap.size:I
end local 2 8: goto 15
9: StackMap locals: java.util.EnumMap java.util.Map
StackMap stack:
aload 1
invokeinterface java.util.Map.isEmpty:()Z
ifeq 11
10: new java.lang.IllegalArgumentException
dup
ldc "Specified map is empty"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 0
aload 1
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Enum
invokevirtual java.lang.Enum.getDeclaringClass:()Ljava/lang/Class;
putfield java.util.EnumMap.keyType:Ljava/lang/Class;
12: aload 0
aload 0
getfield java.util.EnumMap.keyType:Ljava/lang/Class;
invokestatic java.util.EnumMap.getKeyUniverse:(Ljava/lang/Class;)[Ljava/lang/Enum;
putfield java.util.EnumMap.keyUniverse:[Ljava/lang/Enum;
13: aload 0
aload 0
getfield java.util.EnumMap.keyUniverse:[Ljava/lang/Enum;
arraylength
anewarray java.lang.Object
putfield java.util.EnumMap.vals:[Ljava/lang/Object;
14: aload 0
aload 1
invokevirtual java.util.EnumMap.putAll:(Ljava/util/Map;)V
15: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljava/util/EnumMap<TK;TV;>;
0 16 1 m Ljava/util/Map<TK;+TV;>;
4 8 2 em Ljava/util/EnumMap<TK;+TV;>;
Signature: (Ljava/util/Map<TK;+TV;>;)V
MethodParameters:
Name Flags
m
public int size();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.EnumMap.size:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/EnumMap<TK;TV;>;
public boolean containsValue(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.util.EnumMap.maskNull:(Ljava/lang/Object;)Ljava/lang/Object;
astore 1
1: aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 6
StackMap locals: java.util.EnumMap java.lang.Object top int int java.lang.Object[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 1
aload 2
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 5
4: iconst_1
ireturn
end local 2 5: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
iload 4
if_icmplt 2
7: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/util/EnumMap<TK;TV;>;
0 8 1 value Ljava/lang/Object;
3 5 2 val Ljava/lang/Object;
MethodParameters:
Name Flags
value
public boolean containsKey(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.util.EnumMap.isValidKey:(Ljava/lang/Object;)Z
ifeq 1
aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
aload 1
checkcast java.lang.Enum
invokevirtual java.lang.Enum.ordinal:()I
aaload
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/EnumMap<TK;TV;>;
0 2 1 key Ljava/lang/Object;
MethodParameters:
Name Flags
key
private boolean containsMapping(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual java.util.EnumMap.isValidKey:(Ljava/lang/Object;)Z
ifeq 3
1: aload 0
aload 2
invokevirtual java.util.EnumMap.maskNull:(Ljava/lang/Object;)Ljava/lang/Object;
aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
aload 1
checkcast java.lang.Enum
invokevirtual java.lang.Enum.ordinal:()I
aaload
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 3
2: iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/EnumMap<TK;TV;>;
0 4 1 key Ljava/lang/Object;
0 4 2 value Ljava/lang/Object;
MethodParameters:
Name Flags
key
value
public V get();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.util.EnumMap.isValidKey:(Ljava/lang/Object;)Z
ifeq 2
1: aload 0
aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
aload 1
checkcast java.lang.Enum
invokevirtual java.lang.Enum.ordinal:()I
aaload
invokevirtual java.util.EnumMap.unmaskNull:(Ljava/lang/Object;)Ljava/lang/Object;
goto 3
StackMap locals:
StackMap stack:
2: aconst_null
3: StackMap locals:
StackMap stack: java.lang.Object
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/EnumMap<TK;TV;>;
0 4 1 key Ljava/lang/Object;
Signature: (Ljava/lang/Object;)TV;
MethodParameters:
Name Flags
key
public V put(K, );
descriptor: (Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual java.util.EnumMap.typeCheck:(Ljava/lang/Enum;)V
1: aload 1
invokevirtual java.lang.Enum.ordinal:()I
istore 3
start local 3 2: aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
iload 3
aaload
astore 4
start local 4 3: aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
iload 3
aload 0
aload 2
invokevirtual java.util.EnumMap.maskNull:(Ljava/lang/Object;)Ljava/lang/Object;
aastore
4: aload 4
ifnonnull 6
5: aload 0
dup
getfield java.util.EnumMap.size:I
iconst_1
iadd
putfield java.util.EnumMap.size:I
6: StackMap locals: int java.lang.Object
StackMap stack:
aload 0
aload 4
invokevirtual java.util.EnumMap.unmaskNull:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/util/EnumMap<TK;TV;>;
0 7 1 key TK;
0 7 2 value TV;
2 7 3 index I
3 7 4 oldValue Ljava/lang/Object;
Signature: (TK;TV;)TV;
MethodParameters:
Name Flags
key
value
public V remove();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.util.EnumMap.isValidKey:(Ljava/lang/Object;)Z
ifne 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 1
checkcast java.lang.Enum
invokevirtual java.lang.Enum.ordinal:()I
istore 2
start local 2 3: aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
iload 2
aaload
astore 3
start local 3 4: aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
iload 2
aconst_null
aastore
5: aload 3
ifnull 7
6: aload 0
dup
getfield java.util.EnumMap.size:I
iconst_1
isub
putfield java.util.EnumMap.size:I
7: StackMap locals: int java.lang.Object
StackMap stack:
aload 0
aload 3
invokevirtual java.util.EnumMap.unmaskNull:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/util/EnumMap<TK;TV;>;
0 8 1 key Ljava/lang/Object;
3 8 2 index I
4 8 3 oldValue Ljava/lang/Object;
Signature: (Ljava/lang/Object;)TV;
MethodParameters:
Name Flags
key
private boolean removeMapping(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual java.util.EnumMap.isValidKey:(Ljava/lang/Object;)Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
checkcast java.lang.Enum
invokevirtual java.lang.Enum.ordinal:()I
istore 3
start local 3 3: aload 0
aload 2
invokevirtual java.util.EnumMap.maskNull:(Ljava/lang/Object;)Ljava/lang/Object;
aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
iload 3
aaload
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 7
4: aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
iload 3
aconst_null
aastore
5: aload 0
dup
getfield java.util.EnumMap.size:I
iconst_1
isub
putfield java.util.EnumMap.size:I
6: iconst_1
ireturn
7: StackMap locals: int
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/util/EnumMap<TK;TV;>;
0 8 1 key Ljava/lang/Object;
0 8 2 value Ljava/lang/Object;
3 8 3 index I
MethodParameters:
Name Flags
key
value
private boolean isValidKey(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 2
start local 2 3: aload 2
aload 0
getfield java.util.EnumMap.keyType:Ljava/lang/Class;
if_acmpeq 4
aload 2
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
aload 0
getfield java.util.EnumMap.keyType:Ljava/lang/Class;
if_acmpeq 4
iconst_0
ireturn
StackMap locals: java.lang.Class
StackMap stack:
4: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/EnumMap<TK;TV;>;
0 5 1 key Ljava/lang/Object;
3 5 2 keyClass Ljava/lang/Class<*>;
MethodParameters:
Name Flags
key
public void putAll(java.util.Map<? extends K, ? extends V>);
descriptor: (Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
instanceof java.util.EnumMap
ifeq 16
1: aload 1
checkcast java.util.EnumMap
astore 2
start local 2 2: aload 2
getfield java.util.EnumMap.keyType:Ljava/lang/Class;
aload 0
getfield java.util.EnumMap.keyType:Ljava/lang/Class;
if_acmpeq 6
3: aload 2
invokevirtual java.util.EnumMap.isEmpty:()Z
ifeq 5
4: return
5: StackMap locals: java.util.EnumMap
StackMap stack:
new java.lang.ClassCastException
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 2
getfield java.util.EnumMap.keyType:Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " != "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield java.util.EnumMap.keyType:Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 7: goto 14
8: StackMap locals: int
StackMap stack:
aload 2
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
iload 3
aaload
astore 4
start local 4 9: aload 4
ifnull 13
10: aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
iload 3
aaload
ifnonnull 12
11: aload 0
dup
getfield java.util.EnumMap.size:I
iconst_1
iadd
putfield java.util.EnumMap.size:I
12: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
iload 3
aload 4
aastore
end local 4 13: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
14: iload 3
aload 0
getfield java.util.EnumMap.keyUniverse:[Ljava/lang/Enum;
arraylength
if_icmplt 8
end local 3 end local 2 15: goto 17
16: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial java.util.AbstractMap.putAll:(Ljava/util/Map;)V
17: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljava/util/EnumMap<TK;TV;>;
0 18 1 m Ljava/util/Map<+TK;+TV;>;
2 15 2 em Ljava/util/EnumMap<**>;
7 15 3 i I
9 13 4 emValue Ljava/lang/Object;
Signature: (Ljava/util/Map<+TK;+TV;>;)V
MethodParameters:
Name Flags
m
public void clear();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
aconst_null
invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
1: aload 0
iconst_0
putfield java.util.EnumMap.size:I
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/EnumMap<TK;TV;>;
public java.util.Set<K> keySet();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield java.util.EnumMap.keySet:Ljava/util/Set;
astore 1
start local 1 1: aload 1
ifnonnull 4
2: new java.util.EnumMap$KeySet
dup
aload 0
invokespecial java.util.EnumMap$KeySet.<init>:(Ljava/util/EnumMap;)V
astore 1
3: aload 0
aload 1
putfield java.util.EnumMap.keySet:Ljava/util/Set;
4: StackMap locals: java.util.Set
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/EnumMap<TK;TV;>;
1 5 1 ks Ljava/util/Set<TK;>;
Signature: ()Ljava/util/Set<TK;>;
public java.util.Collection<V> values();
descriptor: ()Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield java.util.EnumMap.values:Ljava/util/Collection;
astore 1
start local 1 1: aload 1
ifnonnull 4
2: new java.util.EnumMap$Values
dup
aload 0
invokespecial java.util.EnumMap$Values.<init>:(Ljava/util/EnumMap;)V
astore 1
3: aload 0
aload 1
putfield java.util.EnumMap.values:Ljava/util/Collection;
4: StackMap locals: java.util.Collection
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/EnumMap<TK;TV;>;
1 5 1 vs Ljava/util/Collection<TV;>;
Signature: ()Ljava/util/Collection<TV;>;
public java.util.Set<java.util.Map$Entry<K, V>> entrySet();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield java.util.EnumMap.entrySet:Ljava/util/Set;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
areturn
3: StackMap locals: java.util.Set
StackMap stack:
aload 0
new java.util.EnumMap$EntrySet
dup
aload 0
invokespecial java.util.EnumMap$EntrySet.<init>:(Ljava/util/EnumMap;)V
dup_x1
putfield java.util.EnumMap.entrySet:Ljava/util/Set;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/EnumMap<TK;TV;>;
1 4 1 es Ljava/util/Set<Ljava/util/Map$Entry<TK;TV;>;>;
Signature: ()Ljava/util/Set<Ljava/util/Map$Entry<TK;TV;>;>;
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof java.util.EnumMap
ifeq 4
3: aload 0
aload 1
checkcast java.util.EnumMap
invokevirtual java.util.EnumMap.equals:(Ljava/util/EnumMap;)Z
ireturn
4: StackMap locals:
StackMap stack:
aload 1
instanceof java.util.Map
ifne 6
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
aload 1
checkcast java.util.Map
astore 2
start local 2 7: aload 0
getfield java.util.EnumMap.size:I
aload 2
invokeinterface java.util.Map.size:()I
if_icmpeq 9
8: iconst_0
ireturn
9: StackMap locals: java.util.Map
StackMap stack:
iconst_0
istore 3
start local 3 10: goto 20
11: StackMap locals: int
StackMap stack:
aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
iload 3
aaload
ifnull 19
12: aload 0
getfield java.util.EnumMap.keyUniverse:[Ljava/lang/Enum;
iload 3
aaload
astore 4
start local 4 13: aload 0
aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
iload 3
aaload
invokevirtual java.util.EnumMap.unmaskNull:(Ljava/lang/Object;)Ljava/lang/Object;
astore 5
start local 5 14: aload 5
ifnonnull 17
15: aload 2
aload 4
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 16
aload 2
aload 4
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 19
16: StackMap locals: java.lang.Enum java.lang.Object
StackMap stack:
iconst_0
ireturn
17: StackMap locals:
StackMap stack:
aload 5
aload 2
aload 4
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 19
18: iconst_0
ireturn
end local 5 end local 4 19: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
20: iload 3
aload 0
getfield java.util.EnumMap.keyUniverse:[Ljava/lang/Enum;
arraylength
if_icmplt 11
end local 3 21: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Ljava/util/EnumMap<TK;TV;>;
0 22 1 o Ljava/lang/Object;
7 22 2 m Ljava/util/Map<**>;
10 21 3 i I
13 19 4 key TK;
14 19 5 value TV;
MethodParameters:
Name Flags
o
private boolean equals(java.util.EnumMap<?, ?>);
descriptor: (Ljava/util/EnumMap;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
getfield java.util.EnumMap.size:I
aload 0
getfield java.util.EnumMap.size:I
if_icmpeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
getfield java.util.EnumMap.keyType:Ljava/lang/Class;
aload 0
getfield java.util.EnumMap.keyType:Ljava/lang/Class;
if_acmpeq 5
3: aload 0
getfield java.util.EnumMap.size:I
ifne 4
iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 6: goto 13
7: StackMap locals: int
StackMap stack:
aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
iload 2
aaload
astore 3
start local 3 8: aload 1
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
iload 2
aaload
astore 4
start local 4 9: aload 4
aload 3
if_acmpeq 12
10: aload 4
ifnull 11
aload 4
aload 3
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 12
11: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
iconst_0
ireturn
end local 4 end local 3 12: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
13: iload 2
aload 0
getfield java.util.EnumMap.keyUniverse:[Ljava/lang/Enum;
arraylength
if_icmplt 7
end local 2 14: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljava/util/EnumMap<TK;TV;>;
0 15 1 em Ljava/util/EnumMap<**>;
6 14 2 i I
8 12 3 ourValue Ljava/lang/Object;
9 12 4 hisValue Ljava/lang/Object;
Signature: (Ljava/util/EnumMap<**>;)Z
MethodParameters:
Name Flags
em
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 6
3: StackMap locals: int int
StackMap stack:
aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
iload 2
aaload
ifnull 5
4: iload 1
aload 0
iload 2
invokevirtual java.util.EnumMap.entryHashCode:(I)I
iadd
istore 1
5: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
6: iload 2
aload 0
getfield java.util.EnumMap.keyUniverse:[Ljava/lang/Enum;
arraylength
if_icmplt 3
end local 2 7: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/util/EnumMap<TK;TV;>;
1 8 1 h I
2 7 2 i I
private int entryHashCode(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.EnumMap.keyUniverse:[Ljava/lang/Enum;
iload 1
aaload
invokevirtual java.lang.Enum.hashCode:()I
aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
iload 1
aaload
invokevirtual java.lang.Object.hashCode:()I
ixor
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/EnumMap<TK;TV;>;
0 1 1 index I
MethodParameters:
Name Flags
index
public java.util.EnumMap<K, V> clone();
descriptor: ()Ljava/util/EnumMap;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
invokespecial java.util.AbstractMap.clone:()Ljava/lang/Object;
checkcast java.util.EnumMap
astore 1
2: goto 5
StackMap locals: java.util.EnumMap java.util.EnumMap
StackMap stack: java.lang.CloneNotSupportedException
3: pop
4: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 1
aload 1
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
invokevirtual java.lang.Object[].clone:()Ljava/lang/Object;
checkcast java.lang.Object[]
putfield java.util.EnumMap.vals:[Ljava/lang/Object;
6: aload 1
aconst_null
putfield java.util.EnumMap.entrySet:Ljava/util/Set;
7: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/util/EnumMap<TK;TV;>;
1 8 1 result Ljava/util/EnumMap<TK;TV;>;
Exception table:
from to target type
1 2 3 Class java.lang.CloneNotSupportedException
Signature: ()Ljava/util/EnumMap<TK;TV;>;
private void typeCheck();
descriptor: (Ljava/lang/Enum;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 2
start local 2 1: aload 2
aload 0
getfield java.util.EnumMap.keyType:Ljava/lang/Class;
if_acmpeq 3
aload 2
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
aload 0
getfield java.util.EnumMap.keyType:Ljava/lang/Class;
if_acmpeq 3
2: new java.lang.ClassCastException
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " != "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield java.util.EnumMap.keyType:Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.lang.Class
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/EnumMap<TK;TV;>;
0 4 1 key TK;
1 4 2 keyClass Ljava/lang/Class<*>;
Signature: (TK;)V
MethodParameters:
Name Flags
key
private static <K extends java.lang.Enum<K>> K[] getKeyUniverse(java.lang.Class<K>);
descriptor: (Ljava/lang/Class;)[Ljava/lang/Enum;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic jdk.internal.access.SharedSecrets.getJavaLangAccess:()Ljdk/internal/access/JavaLangAccess;
1: aload 0
invokeinterface jdk.internal.access.JavaLangAccess.getEnumConstantsShared:(Ljava/lang/Class;)[Ljava/lang/Enum;
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 keyType Ljava/lang/Class<TK;>;
Signature: <K:Ljava/lang/Enum<TK;>;>(Ljava/lang/Class<TK;>;)[TK;
MethodParameters:
Name Flags
keyType
private void writeObject(java.io.ObjectOutputStream);
descriptor: (Ljava/io/ObjectOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
1: aload 1
aload 0
getfield java.util.EnumMap.size:I
invokevirtual java.io.ObjectOutputStream.writeInt:(I)V
2: aload 0
getfield java.util.EnumMap.size:I
istore 2
start local 2 3: iconst_0
istore 3
start local 3 4: goto 10
5: StackMap locals: int int
StackMap stack:
aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
iload 3
aaload
ifnull 9
6: aload 1
aload 0
getfield java.util.EnumMap.keyUniverse:[Ljava/lang/Enum;
iload 3
aaload
invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
7: aload 1
aload 0
aload 0
getfield java.util.EnumMap.vals:[Ljava/lang/Object;
iload 3
aaload
invokevirtual java.util.EnumMap.unmaskNull:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
8: iinc 2 -1
9: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
10: iload 2
ifgt 5
end local 3 11: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/util/EnumMap<TK;TV;>;
0 12 1 s Ljava/io/ObjectOutputStream;
3 12 2 entriesToBeWritten I
4 11 3 i I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
s
private void readObject(java.io.ObjectInputStream);
descriptor: (Ljava/io/ObjectInputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
1: aload 0
aload 0
getfield java.util.EnumMap.keyType:Ljava/lang/Class;
invokestatic java.util.EnumMap.getKeyUniverse:(Ljava/lang/Class;)[Ljava/lang/Enum;
putfield java.util.EnumMap.keyUniverse:[Ljava/lang/Enum;
2: aload 0
aload 0
getfield java.util.EnumMap.keyUniverse:[Ljava/lang/Enum;
arraylength
anewarray java.lang.Object
putfield java.util.EnumMap.vals:[Ljava/lang/Object;
3: aload 1
invokevirtual java.io.ObjectInputStream.readInt:()I
istore 2
start local 2 4: iconst_0
istore 3
start local 3 5: goto 10
6: StackMap locals: int int
StackMap stack:
aload 1
invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
checkcast java.lang.Enum
astore 4
start local 4 7: aload 1
invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
astore 5
start local 5 8: aload 0
aload 4
aload 5
invokevirtual java.util.EnumMap.put:(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 end local 4 9: iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
iload 2
if_icmplt 6
end local 3 11: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/util/EnumMap<TK;TV;>;
0 12 1 s Ljava/io/ObjectInputStream;
4 12 2 size I
5 11 3 i I
7 9 4 key TK;
8 9 5 value TV;
Exceptions:
throws java.io.IOException, java.lang.ClassNotFoundException
MethodParameters:
Name Flags
s
public java.lang.Object clone();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual java.util.EnumMap.clone:()Ljava/util/EnumMap;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.CloneNotSupportedException
public java.lang.Object put(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
checkcast java.lang.Enum
aload 2
checkcast java.lang.Object
invokevirtual java.util.EnumMap.put:(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: <K:Ljava/lang/Enum<TK;>;V:Ljava/lang/Object;>Ljava/util/AbstractMap<TK;TV;>;Ljava/io/Serializable;Ljava/lang/Cloneable;
SourceFile: "EnumMap.java"
NestMembers:
java.util.EnumMap$1 java.util.EnumMap$EntryIterator java.util.EnumMap$EntryIterator$Entry java.util.EnumMap$EntrySet java.util.EnumMap$EnumMapIterator java.util.EnumMap$KeyIterator java.util.EnumMap$KeySet java.util.EnumMap$ValueIterator java.util.EnumMap$Values
InnerClasses:
java.util.EnumMap$1
private EntryIterator = java.util.EnumMap$EntryIterator of java.util.EnumMap
private EntrySet = java.util.EnumMap$EntrySet of java.util.EnumMap
private abstract EnumMapIterator = java.util.EnumMap$EnumMapIterator of java.util.EnumMap
private KeyIterator = java.util.EnumMap$KeyIterator of java.util.EnumMap
private KeySet = java.util.EnumMap$KeySet of java.util.EnumMap
private ValueIterator = java.util.EnumMap$ValueIterator of java.util.EnumMap
private Values = java.util.EnumMap$Values of java.util.EnumMap
public abstract Entry = java.util.Map$Entry of java.util.Map