This commit is contained in:
redkale
2023-09-15 14:52:52 +08:00
parent c1414de552
commit b2b8c0de2d
2 changed files with 7 additions and 1 deletions

View File

@@ -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<T> {
return Inners.CreatorInner.arrayCacheMap.computeIfAbsent(type, Inners.CreatorInner::createArrayFunction);
}
public static IntFunction<String[]> funcStringArray() {
return Inners.CreatorInner.stringFuncArray;
}
public static <T> Creator<T> load(Class<T> clazz) {
return Inners.CreatorInner.creatorCacheMap.computeIfAbsent(clazz, v -> create(clazz));
}

View File

@@ -33,6 +33,8 @@ class Inners {
static final Map<Class, IntFunction> arrayCacheMap = new ConcurrentHashMap<>();
static final IntFunction<String[]> stringFuncArray = x -> new String[x];
static {
creatorCacheMap.put(Object.class, p -> new Object());
creatorCacheMap.put(ArrayList.class, p -> new ArrayList<>());