Skip to content

Commit 1e65fd0

Browse files
committed
fix ObjectReaderCreator createObjectReader for Class<T>
1 parent f55184d commit 1e65fd0

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1001,6 +1001,10 @@ public <T> ObjectReader<T> createObjectReader(
10011001
beanInfo.readerFeatures |= JSONReader.Feature.IgnoreSetNullValue.mask;
10021002
}
10031003

1004+
if (objectClass == Class.class) {
1005+
return ObjectReaderImplClass.INSTANCE;
1006+
}
1007+
10041008
if (fieldBased && objectClass.isInterface()) {
10051009
fieldBased = false;
10061010
}

core/src/test/java/com/alibaba/fastjson2/issues_2300/Issue2356.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package com.alibaba.fastjson2.issues_2300;
22

33
import com.alibaba.fastjson2.JSONFactory;
4+
import com.alibaba.fastjson2.reader.ObjectReaderCreator;
5+
import com.alibaba.fastjson2.reader.ObjectReaderProvider;
6+
import com.alibaba.fastjson2.util.TypeUtils;
47
import org.junit.jupiter.api.Test;
58

69
import java.lang.reflect.Type;
@@ -10,6 +13,7 @@ public class Issue2356 {
1013
public void test() throws Exception {
1114
Type parameterType = Issue2356.class.getMethod("create", Class.class).getGenericParameterTypes()[0];
1215
JSONFactory.getDefaultObjectReaderProvider().getObjectReader(parameterType);
16+
ObjectReaderCreator.INSTANCE.createObjectReader(TypeUtils.getClass(parameterType), parameterType, false, new ObjectReaderProvider());
1317
}
1418

1519
public static <T> T create(Class<T> objectClass) {

0 commit comments

Comments
 (0)