public final class com.google.gson.internal.ConstructorConstructor
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.google.gson.internal.ConstructorConstructor
super_class: java.lang.Object
{
private final java.util.Map<java.lang.reflect.Type, com.google.gson.InstanceCreator<?>> instanceCreators;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/reflect/Type;Lcom/google/gson/InstanceCreator<*>;>;
private final com.google.gson.internal.reflect.ReflectionAccessor accessor;
descriptor: Lcom/google/gson/internal/reflect/ReflectionAccessor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(java.util.Map<java.lang.reflect.Type, com.google.gson.InstanceCreator<?>>);
descriptor: (Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
invokestatic com.google.gson.internal.reflect.ReflectionAccessor.getInstance:()Lcom/google/gson/internal/reflect/ReflectionAccessor;
putfield com.google.gson.internal.ConstructorConstructor.accessor:Lcom/google/gson/internal/reflect/ReflectionAccessor;
2: aload 0
aload 1
putfield com.google.gson.internal.ConstructorConstructor.instanceCreators:Ljava/util/Map;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/gson/internal/ConstructorConstructor;
0 4 1 instanceCreators Ljava/util/Map<Ljava/lang/reflect/Type;Lcom/google/gson/InstanceCreator<*>;>;
Signature: (Ljava/util/Map<Ljava/lang/reflect/Type;Lcom/google/gson/InstanceCreator<*>;>;)V
MethodParameters:
Name Flags
instanceCreators
public <T> com.google.gson.internal.ObjectConstructor<T> get(com.google.gson.reflect.TypeToken<T>);
descriptor: (Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/internal/ObjectConstructor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.google.gson.reflect.TypeToken.getType:()Ljava/lang/reflect/Type;
astore 2
start local 2 1: aload 1
invokevirtual com.google.gson.reflect.TypeToken.getRawType:()Ljava/lang/Class;
astore 3
start local 3 2: aload 0
getfield com.google.gson.internal.ConstructorConstructor.instanceCreators:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.google.gson.InstanceCreator
astore 4
start local 4 3: aload 4
ifnull 5
4: new com.google.gson.internal.ConstructorConstructor$1
dup
aload 0
aload 4
aload 2
invokespecial com.google.gson.internal.ConstructorConstructor$1.<init>:(Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/InstanceCreator;Ljava/lang/reflect/Type;)V
areturn
5: StackMap locals: java.lang.reflect.Type java.lang.Class com.google.gson.InstanceCreator
StackMap stack:
aload 0
getfield com.google.gson.internal.ConstructorConstructor.instanceCreators:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.google.gson.InstanceCreator
6: astore 5
start local 5 7: aload 5
ifnull 9
8: new com.google.gson.internal.ConstructorConstructor$2
dup
aload 0
aload 5
aload 2
invokespecial com.google.gson.internal.ConstructorConstructor$2.<init>:(Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/InstanceCreator;Ljava/lang/reflect/Type;)V
areturn
9: StackMap locals: com.google.gson.InstanceCreator
StackMap stack:
aload 0
aload 3
invokevirtual com.google.gson.internal.ConstructorConstructor.newDefaultConstructor:(Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor;
astore 6
start local 6 10: aload 6
ifnull 12
11: aload 6
areturn
12: StackMap locals: com.google.gson.internal.ObjectConstructor
StackMap stack:
aload 0
aload 2
aload 3
invokevirtual com.google.gson.internal.ConstructorConstructor.newDefaultImplementationConstructor:(Ljava/lang/reflect/Type;Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor;
astore 7
start local 7 13: aload 7
ifnull 15
14: aload 7
areturn
15: StackMap locals: com.google.gson.internal.ObjectConstructor
StackMap stack:
aload 0
aload 2
aload 3
invokevirtual com.google.gson.internal.ConstructorConstructor.newUnsafeAllocator:(Ljava/lang/reflect/Type;Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor;
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/google/gson/internal/ConstructorConstructor;
0 16 1 typeToken Lcom/google/gson/reflect/TypeToken<TT;>;
1 16 2 type Ljava/lang/reflect/Type;
2 16 3 rawType Ljava/lang/Class<-TT;>;
3 16 4 typeCreator Lcom/google/gson/InstanceCreator<TT;>;
7 16 5 rawTypeCreator Lcom/google/gson/InstanceCreator<TT;>;
10 16 6 defaultConstructor Lcom/google/gson/internal/ObjectConstructor<TT;>;
13 16 7 defaultImplementation Lcom/google/gson/internal/ObjectConstructor<TT;>;
Signature: <T:Ljava/lang/Object;>(Lcom/google/gson/reflect/TypeToken<TT;>;)Lcom/google/gson/internal/ObjectConstructor<TT;>;
MethodParameters:
Name Flags
typeToken
private <T> com.google.gson.internal.ObjectConstructor<T> newDefaultConstructor(java.lang.Class<? super T>);
descriptor: (Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
astore 2
start local 2 1: aload 2
invokevirtual java.lang.reflect.Constructor.isAccessible:()Z
ifne 3
2: aload 0
getfield com.google.gson.internal.ConstructorConstructor.accessor:Lcom/google/gson/internal/reflect/ReflectionAccessor;
aload 2
invokevirtual com.google.gson.internal.reflect.ReflectionAccessor.makeAccessible:(Ljava/lang/reflect/AccessibleObject;)V
3: StackMap locals: java.lang.reflect.Constructor
StackMap stack:
new com.google.gson.internal.ConstructorConstructor$3
dup
aload 0
aload 2
invokespecial com.google.gson.internal.ConstructorConstructor$3.<init>:(Lcom/google/gson/internal/ConstructorConstructor;Ljava/lang/reflect/Constructor;)V
4: areturn
end local 2 5: StackMap locals: com.google.gson.internal.ConstructorConstructor java.lang.Class
StackMap stack: java.lang.NoSuchMethodException
pop
6: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/gson/internal/ConstructorConstructor;
0 7 1 rawType Ljava/lang/Class<-TT;>;
1 5 2 constructor Ljava/lang/reflect/Constructor<-TT;>;
Exception table:
from to target type
0 4 5 Class java.lang.NoSuchMethodException
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<-TT;>;)Lcom/google/gson/internal/ObjectConstructor<TT;>;
MethodParameters:
Name Flags
rawType
private <T> com.google.gson.internal.ObjectConstructor<T> newDefaultImplementationConstructor(java.lang.reflect.Type, java.lang.Class<? super T>);
descriptor: (Ljava/lang/reflect/Type;Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: ldc Ljava/util/Collection;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 10
1: ldc Ljava/util/SortedSet;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 3
2: new com.google.gson.internal.ConstructorConstructor$4
dup
aload 0
invokespecial com.google.gson.internal.ConstructorConstructor$4.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
areturn
3: StackMap locals:
StackMap stack:
ldc Ljava/util/EnumSet;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 5
4: new com.google.gson.internal.ConstructorConstructor$5
dup
aload 0
aload 1
invokespecial com.google.gson.internal.ConstructorConstructor$5.<init>:(Lcom/google/gson/internal/ConstructorConstructor;Ljava/lang/reflect/Type;)V
areturn
5: StackMap locals:
StackMap stack:
ldc Ljava/util/Set;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 7
6: new com.google.gson.internal.ConstructorConstructor$6
dup
aload 0
invokespecial com.google.gson.internal.ConstructorConstructor$6.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
areturn
7: StackMap locals:
StackMap stack:
ldc Ljava/util/Queue;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 9
8: new com.google.gson.internal.ConstructorConstructor$7
dup
aload 0
invokespecial com.google.gson.internal.ConstructorConstructor$7.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
areturn
9: StackMap locals:
StackMap stack:
new com.google.gson.internal.ConstructorConstructor$8
dup
aload 0
invokespecial com.google.gson.internal.ConstructorConstructor$8.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
areturn
10: StackMap locals:
StackMap stack:
ldc Ljava/util/Map;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 23
11: ldc Ljava/util/concurrent/ConcurrentNavigableMap;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 13
12: new com.google.gson.internal.ConstructorConstructor$9
dup
aload 0
invokespecial com.google.gson.internal.ConstructorConstructor$9.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
areturn
13: StackMap locals:
StackMap stack:
ldc Ljava/util/concurrent/ConcurrentMap;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 15
14: new com.google.gson.internal.ConstructorConstructor$10
dup
aload 0
invokespecial com.google.gson.internal.ConstructorConstructor$10.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
areturn
15: StackMap locals:
StackMap stack:
ldc Ljava/util/SortedMap;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 17
16: new com.google.gson.internal.ConstructorConstructor$11
dup
aload 0
invokespecial com.google.gson.internal.ConstructorConstructor$11.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
areturn
17: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.reflect.ParameterizedType
ifeq 22
ldc Ljava/lang/String;
18: aload 1
checkcast java.lang.reflect.ParameterizedType
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
iconst_0
aaload
invokestatic com.google.gson.reflect.TypeToken.get:(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken;
invokevirtual com.google.gson.reflect.TypeToken.getRawType:()Ljava/lang/Class;
19: invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
20: ifne 22
21: new com.google.gson.internal.ConstructorConstructor$12
dup
aload 0
invokespecial com.google.gson.internal.ConstructorConstructor$12.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
areturn
22: StackMap locals:
StackMap stack:
new com.google.gson.internal.ConstructorConstructor$13
dup
aload 0
invokespecial com.google.gson.internal.ConstructorConstructor$13.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
areturn
23: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lcom/google/gson/internal/ConstructorConstructor;
0 24 1 type Ljava/lang/reflect/Type;
0 24 2 rawType Ljava/lang/Class<-TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/reflect/Type;Ljava/lang/Class<-TT;>;)Lcom/google/gson/internal/ObjectConstructor<TT;>;
MethodParameters:
Name Flags
type final
rawType
private <T> com.google.gson.internal.ObjectConstructor<T> newUnsafeAllocator(java.lang.reflect.Type, java.lang.Class<? super T>);
descriptor: (Ljava/lang/reflect/Type;Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new com.google.gson.internal.ConstructorConstructor$14
dup
aload 0
aload 2
aload 1
invokespecial com.google.gson.internal.ConstructorConstructor$14.<init>:(Lcom/google/gson/internal/ConstructorConstructor;Ljava/lang/Class;Ljava/lang/reflect/Type;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/gson/internal/ConstructorConstructor;
0 1 1 type Ljava/lang/reflect/Type;
0 1 2 rawType Ljava/lang/Class<-TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/reflect/Type;Ljava/lang/Class<-TT;>;)Lcom/google/gson/internal/ObjectConstructor<TT;>;
MethodParameters:
Name Flags
type final
rawType final
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.gson.internal.ConstructorConstructor.instanceCreators:Ljava/util/Map;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/gson/internal/ConstructorConstructor;
}
SourceFile: "ConstructorConstructor.java"
NestMembers:
com.google.gson.internal.ConstructorConstructor$1 com.google.gson.internal.ConstructorConstructor$10 com.google.gson.internal.ConstructorConstructor$11 com.google.gson.internal.ConstructorConstructor$12 com.google.gson.internal.ConstructorConstructor$13 com.google.gson.internal.ConstructorConstructor$14 com.google.gson.internal.ConstructorConstructor$2 com.google.gson.internal.ConstructorConstructor$3 com.google.gson.internal.ConstructorConstructor$4 com.google.gson.internal.ConstructorConstructor$5 com.google.gson.internal.ConstructorConstructor$6 com.google.gson.internal.ConstructorConstructor$7 com.google.gson.internal.ConstructorConstructor$8 com.google.gson.internal.ConstructorConstructor$9
InnerClasses:
com.google.gson.internal.ConstructorConstructor$1
com.google.gson.internal.ConstructorConstructor$10
com.google.gson.internal.ConstructorConstructor$11
com.google.gson.internal.ConstructorConstructor$12
com.google.gson.internal.ConstructorConstructor$13
com.google.gson.internal.ConstructorConstructor$14
com.google.gson.internal.ConstructorConstructor$2
com.google.gson.internal.ConstructorConstructor$3
com.google.gson.internal.ConstructorConstructor$4
com.google.gson.internal.ConstructorConstructor$5
com.google.gson.internal.ConstructorConstructor$6
com.google.gson.internal.ConstructorConstructor$7
com.google.gson.internal.ConstructorConstructor$8
com.google.gson.internal.ConstructorConstructor$9