Skip to content

Commit ff3267a

Browse files
committed
fix deserialize generic Class type error, for issue alibaba#2356
1 parent 021facc commit ff3267a

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

core/src/main/java/com/alibaba/fastjson2/reader/ObjectReaderCreatorASM.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,10 @@ public <T> ObjectReader<T> createObjectReader(
253253
return super.createObjectReader(objectClass, objectType, fieldBased, provider);
254254
}
255255

256+
if (objectClass == Class.class) {
257+
return ObjectReaderImplClass.INSTANCE;
258+
}
259+
256260
FieldReader[] fieldReaderArray = createFieldReaders(objectClass, objectType, beanInfo, fieldBased, provider);
257261
boolean match = true;
258262

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.alibaba.fastjson2.issues_2300;
2+
3+
import com.alibaba.fastjson2.JSONFactory;
4+
import org.junit.jupiter.api.Test;
5+
6+
import java.lang.reflect.Type;
7+
8+
public class Issue2356 {
9+
@Test
10+
public void test() throws Exception {
11+
Type parameterType = Issue2356.class.getMethod("create", Class.class).getGenericParameterTypes()[0];
12+
JSONFactory.getDefaultObjectReaderProvider().getObjectReader(parameterType);
13+
}
14+
15+
public static <T> T create(Class<T> objectClass) {
16+
return null;
17+
}
18+
}

0 commit comments

Comments
 (0)