Skip to content

Commit eb6d75e

Browse files
committed
FieldWriterUUID
1 parent d98d8ed commit eb6d75e

File tree

2 files changed

+9
-15
lines changed

2 files changed

+9
-15
lines changed

core/src/main/java/com/alibaba/fastjson2/writer/FieldWriterUUID.java

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,8 @@ public boolean write(JSONWriter jsonWriter, T object) {
4343
return false;
4444
}
4545
}
46-
4746
writeFieldName(jsonWriter);
48-
49-
if (objectWriter == null) {
50-
objectWriter = getObjectWriter(jsonWriter, UUID.class);
51-
}
52-
53-
if (objectWriter != ObjectWriterImplUUID.INSTANCE) {
54-
objectWriter.write(jsonWriter, uuid, fieldName, fieldClass, features);
55-
} else {
56-
jsonWriter.writeUUID(uuid);
57-
}
47+
jsonWriter.writeUUID(uuid);
5848
return true;
5949
}
6050

core/src/main/java/com/alibaba/fastjson2/writer/ObjectWriterCreator.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1125,7 +1125,7 @@ public <T> FieldWriter<T> createFieldWriter(
11251125
return new FieldWriterOffsetDateTime(fieldName, ordinal, features, format, locale, label, fieldType, fieldClass, field, null, null);
11261126
}
11271127

1128-
if (fieldClass == UUID.class) {
1128+
if (fieldClass == UUID.class && isDefaultUUIDObjectWriter(provider)) {
11291129
return new FieldWriterUUID(fieldName, ordinal, features, format, label, fieldType, fieldClass, field, null, null);
11301130
}
11311131

@@ -1433,7 +1433,7 @@ public <T> FieldWriter<T> createFieldWriter(
14331433
return new FieldWriterOffsetDateTime(fieldName, ordinal, features, format, locale, label, fieldType, fieldClass, field, method, null);
14341434
}
14351435

1436-
if (fieldClass == UUID.class) {
1436+
if (fieldClass == UUID.class && isDefaultUUIDObjectWriter(provider)) {
14371437
return new FieldWriterUUID(fieldName, ordinal, features, format, label, fieldType, fieldClass, field, method, null);
14381438
}
14391439

@@ -1583,7 +1583,7 @@ public <T, V> FieldWriter createFieldWriter(
15831583
Class fieldClass,
15841584
Function<T, V> function
15851585
) {
1586-
return createFieldWriter(null, null, fieldName, 0, 0, null, null, fieldClass, fieldClass, null, function);
1586+
return createFieldWriter(JSONFactory.getDefaultObjectWriterProvider(), null, fieldName, 0, 0, null, null, fieldClass, fieldClass, null, function);
15871587
}
15881588

15891589
/**
@@ -1865,7 +1865,7 @@ public <T, V> FieldWriter<T> createFieldWriter(
18651865
return new FieldWriterOffsetDateTime(fieldName, ordinal, features, format, locale, label, fieldType, fieldClass, field, method, function);
18661866
}
18671867

1868-
if (fieldClass == UUID.class) {
1868+
if (fieldClass == UUID.class && isDefaultUUIDObjectWriter(provider)) {
18691869
return new FieldWriterUUID(fieldName, ordinal, features, format, label, fieldType, fieldClass, field, method, function);
18701870
}
18711871

@@ -1924,6 +1924,10 @@ public <T, V> FieldWriter<T> createFieldWriter(
19241924
return new FieldWriterObject(fieldName, ordinal, features, format, locale, label, fieldType, fieldClass, field, method, function);
19251925
}
19261926

1927+
private static boolean isDefaultUUIDObjectWriter(ObjectWriterProvider provider) {
1928+
return provider.getObjectWriter(UUID.class) == ObjectWriterImplUUID.INSTANCE;
1929+
}
1930+
19271931
static class LambdaInfo {
19281932
final Class fieldClass;
19291933
final Class supplierClass;

0 commit comments

Comments
 (0)