content: package com.alibaba.fastjson.parser.deserializer;
  
  import java.lang.reflect.Array;
  import java.lang.reflect.Type;
  import java.util.List;
  import java.util.Map;
  
  import com.alibaba.fastjson.JSONArray;
  import com.alibaba.fastjson.parser.DefaultJSONParser;
  import com.alibaba.fastjson.util.TypeUtils;
  
  @SuppressWarnings("rawtypes")
  public final class ListResolveFieldDeserializer extends FieldDeserializer {
  
      private final int               index;
      private final List              list;
      private final DefaultJSONParser parser;
  
      public ListResolveFieldDeserializer(DefaultJSONParser parser, List list, int index){
          super(null, null);
          this.parser = parser;
          this.index = index;
          this.list = list;
      }
  
      @SuppressWarnings("unchecked")
      public void setValue(Object object, Object value) {
          list.set(index, value);
  
          if (list instanceof JSONArray) {
              JSONArray jsonArray = (JSONArray) list;
              Object array = jsonArray.getRelatedArray();
  
              if (array != null) {
                  int arrayLength = Array.getLength(array);
  
                  if (arrayLength > index) {
                      Object item;
                      if (jsonArray.getComponentType() != null) {
                          item = TypeUtils.cast(value, jsonArray.getComponentType(), parser.getConfig());
                      } else {
                          item = value;
                      }
                      Array.set(array, index, item);
                  }
              }
          }
      }
  
      public DefaultJSONParser getParser() {
          return parser;
      }
  
      @Override
      public void parseField(DefaultJSONParser parser, Object object, Type objectType, Map<String, Object> fieldValues) {
  
      }
  
      @Override
      public int getFastMatchToken() {
          return 0;
      }
  }
  