diff --git a/src/main/java/com/alibaba/fastjson/parser/deserializer/FieldDeserializer.java b/src/main/java/com/alibaba/fastjson/parser/deserializer/FieldDeserializer.java
index 4f092317f3fda02a12e1ce97f2db8279015a8836..17c78a15b54f1b25a52f026a04b6384b1af15af8 100644
--- a/src/main/java/com/alibaba/fastjson/parser/deserializer/FieldDeserializer.java
+++ b/src/main/java/com/alibaba/fastjson/parser/deserializer/FieldDeserializer.java
@@ -2,8 +2,10 @@ package com.alibaba.fastjson.parser.deserializer;
 
 import com.alibaba.fastjson.JSONException;
 import com.alibaba.fastjson.parser.DefaultJSONParser;
+import com.alibaba.fastjson.parser.ParserConfig;
 import com.alibaba.fastjson.serializer.BeanContext;
 import com.alibaba.fastjson.util.FieldInfo;
+import com.alibaba.fastjson.util.TypeUtils;
 
 import java.lang.reflect.*;
 import java.util.Collection;
@@ -221,12 +223,27 @@ public abstract class FieldDeserializer {
     /**
      * kotlin浠g悊绫籶roperty鐨刧et鏂规硶浼氭姏鏈垵濮嬪寲寮傚父锛岀敤set鏂规硶鐩存帴璧嬪€�
      */
-    private static void degradeValueAssignment(Field field,Method getMethod, Object object, Object value) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
+    private static boolean degradeValueAssignment(
+            Field field,
+            Method getMethod,
+            Object object,
+            Object value
+    ) throws InvocationTargetException, IllegalAccessException {
         if (setFieldValue(field, object, value)) {
-            return;
+            return true;
         }
-        Method setMethod = object.getClass().getDeclaredMethod("set" + getMethod.getName().substring(3), getMethod.getReturnType());
-        setMethod.invoke(object, value);
+
+        try {
+            Method setMethod = object
+                    .getClass()
+                    .getDeclaredMethod("set" + getMethod.getName().substring(3), getMethod.getReturnType());
+            setMethod.invoke(object, value);
+            return true;
+        } catch (InvocationTargetException ignored) {
+        } catch (NoSuchMethodException ignored) {
+        } catch (IllegalAccessException ignored) {
+        }
+        return false;
     }
 
     private static boolean setFieldValue(Field field, Object object, Object value) throws IllegalAccessException {
diff --git a/src/test/java/com/alibaba/json/bvt/parser/deser/list/ListFieldTest.java b/src/test/java/com/alibaba/json/bvt/parser/deser/list/ListFieldTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..ba3dd82190b2365efc3811f896b5bd79e39ceb46
--- /dev/null
+++ b/src/test/java/com/alibaba/json/bvt/parser/deser/list/ListFieldTest.java
@@ -0,0 +1,16 @@
+package com.alibaba.json.bvt.parser.deser.list;
+
+import com.alibaba.fastjson.JSON;
+import junit.framework.TestCase;
+
+public class ListFieldTest extends TestCase {
+    public void test_for_list() throws Exception {
+        JSON.parseObject("{'data':['a','b']}", TestPojo.class);
+    }
+
+    public static class TestPojo{
+        public java.util.List<String> getData(){
+            return null;
+        }
+    }
+}