From ceccd2e2cf7495f139d90057dbbdb5d99efcb06d Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Tue, 19 Aug 2025 12:36:41 +0800 Subject: [PATCH] fix: some number type will be consistent to String in GeneratorFactory --- .../generator/factory/GeneratorFactory.kt | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/sweetproperty-gradle-plugin/src/main/java/com/highcapable/sweetproperty/plugin/generator/factory/GeneratorFactory.kt b/sweetproperty-gradle-plugin/src/main/java/com/highcapable/sweetproperty/plugin/generator/factory/GeneratorFactory.kt index e8950f4..d86b9f5 100644 --- a/sweetproperty-gradle-plugin/src/main/java/com/highcapable/sweetproperty/plugin/generator/factory/GeneratorFactory.kt +++ b/sweetproperty-gradle-plugin/src/main/java/com/highcapable/sweetproperty/plugin/generator/factory/GeneratorFactory.kt @@ -57,17 +57,21 @@ internal fun Any.parseTypedValue(isAutoConversion: Boolean): Pair, Str } else it.replace("\"", "\\\"") } if (!isAutoConversion) return Pair(String::class, "\"$valueString\"") + val trimmed = valueString.trim() val typeSpec = when { - isStringType -> String::class - valueString.trim().toIntOrNull() != null -> Int::class - valueString.trim().toLongOrNull() != null -> Long::class - valueString.trim().toDoubleOrNull() != null -> Double::class - valueString.trim().toFloatOrNull() != null -> Float::class - valueString.trim() == "true" || valueString.trim() == "false" -> Boolean::class + isStringType || trimmed.any { !it.isDigit() && it != '.' && it != '-' } -> String::class + trimmed.toIntOrNull() != null -> Int::class + trimmed.toLongOrNull() != null -> Long::class + trimmed.toDoubleOrNull() != null -> Double::class + trimmed.toFloatOrNull() != null -> Float::class + trimmed == "true" || trimmed == "false" -> Boolean::class else -> String::class - }; return Pair(typeSpec, if (typeSpec == String::class) "\"$valueString\"" else valueString.let { - if (typeSpec == Long::class && !it.endsWith("L")) "${it}L" else it - }) + } + val finalValue = when (typeSpec) { + String::class -> "\"$valueString\"" + Long::class -> if (trimmed.endsWith("L")) trimmed else "${trimmed}L" + else -> trimmed + }; return typeSpec to finalValue } /**