diff --git a/core/src/main/java/com/alibaba/fastjson2/writer/ObjectWriterImplCollection.java b/core/src/main/java/com/alibaba/fastjson2/writer/ObjectWriterImplCollection.java index 35f9bdc874..231622fdd9 100644 --- a/core/src/main/java/com/alibaba/fastjson2/writer/ObjectWriterImplCollection.java +++ b/core/src/main/java/com/alibaba/fastjson2/writer/ObjectWriterImplCollection.java @@ -159,22 +159,18 @@ public void write(JSONWriter jsonWriter, Object object, Object fieldName, Type f i++; continue; } - Class itemClass = item.getClass(); ObjectWriter itemObjectWriter; if (itemClass == previousClass) { itemObjectWriter = previousObjectWriter; } else { - if (itemClass == previousClass) { - itemObjectWriter = previousObjectWriter; - } else { - itemObjectWriter = jsonWriter.getObjectWriter(itemClass); - previousClass = itemClass; - previousObjectWriter = itemObjectWriter; - } - - itemObjectWriter.write(jsonWriter, item, i, this.itemType, this.features); + itemObjectWriter = jsonWriter.getObjectWriter(itemClass); + previousClass = itemClass; + previousObjectWriter = itemObjectWriter; } + + itemObjectWriter.write(jsonWriter, item, i, this.itemType, this.features); + ++i; } jsonWriter.endArray();