From b2b8c0de2da22479b6a031e5fe5cf37df75d90ab Mon Sep 17 00:00:00 2001 From: redkale Date: Fri, 15 Sep 2023 14:52:52 +0800 Subject: [PATCH] Creator --- src/main/java/org/redkale/util/Creator.java | 6 +++++- src/main/java/org/redkale/util/Inners.java | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/redkale/util/Creator.java b/src/main/java/org/redkale/util/Creator.java index 743b2d74b..d0c6a6488 100644 --- a/src/main/java/org/redkale/util/Creator.java +++ b/src/main/java/org/redkale/util/Creator.java @@ -7,8 +7,8 @@ package org.redkale.util; import java.io.*; import java.lang.reflect.*; import java.net.*; -import java.util.AbstractMap.SimpleEntry; import java.util.*; +import java.util.AbstractMap.SimpleEntry; import java.util.concurrent.*; import java.util.function.*; import org.redkale.annotation.ConstructorParameters; @@ -101,6 +101,10 @@ public interface Creator { return Inners.CreatorInner.arrayCacheMap.computeIfAbsent(type, Inners.CreatorInner::createArrayFunction); } + public static IntFunction funcStringArray() { + return Inners.CreatorInner.stringFuncArray; + } + public static Creator load(Class clazz) { return Inners.CreatorInner.creatorCacheMap.computeIfAbsent(clazz, v -> create(clazz)); } diff --git a/src/main/java/org/redkale/util/Inners.java b/src/main/java/org/redkale/util/Inners.java index 5deda735a..a68bfcfc8 100644 --- a/src/main/java/org/redkale/util/Inners.java +++ b/src/main/java/org/redkale/util/Inners.java @@ -33,6 +33,8 @@ class Inners { static final Map arrayCacheMap = new ConcurrentHashMap<>(); + static final IntFunction stringFuncArray = x -> new String[x]; + static { creatorCacheMap.put(Object.class, p -> new Object()); creatorCacheMap.put(ArrayList.class, p -> new ArrayList<>());