From 7b57438fd034a6dab66ac2b09090a20c22de0db8 Mon Sep 17 00:00:00 2001 From: godotg Date: Thu, 1 May 2025 14:27:44 +0800 Subject: [PATCH] feat[storage]: use commas, semicolons, newline separators to parse array --- .../com/zfoo/storage/convert/ConvertUtils.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/storage/src/main/java/com/zfoo/storage/convert/ConvertUtils.java b/storage/src/main/java/com/zfoo/storage/convert/ConvertUtils.java index 7f6ec92f..875bda60 100644 --- a/storage/src/main/java/com/zfoo/storage/convert/ConvertUtils.java +++ b/storage/src/main/java/com/zfoo/storage/convert/ConvertUtils.java @@ -13,6 +13,7 @@ package com.zfoo.storage.convert; import com.zfoo.protocol.util.StringUtils; +import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.ConversionServiceFactoryBean; import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.TypeDescriptor; @@ -63,15 +64,16 @@ public abstract class ConvertUtils { public static Object convertToArray(String content, Class componentType) { content = StringUtils.trim(content); - // null safe,content为空则返回长度为0的数组 if (StringUtils.isEmpty(content)) { return Array.newInstance(componentType, 0); } - // 用普通的逗号分隔符解析 - var list = convertToList(content, componentType); - Object array = Array.newInstance(componentType, list.size()); - for (var i = 0; i < list.size(); i++) { - Array.set(array, i, list.get(i)); + // Use commas, semicolons, newline separators to parse + var splits = StringUtils.tokenize(content, ConfigurableApplicationContext.CONFIG_LOCATION_DELIMITERS); + Object array = Array.newInstance(componentType, splits.length); + for (var i = 0; i < splits.length; i++) { + var split = splits[i]; + var value = convert(StringUtils.trim(split), componentType); + Array.set(array, i, value); } return array; }