From 459834036dfc338aed61db1676ca11c6e75efa5b Mon Sep 17 00:00:00 2001 From: kanghailin <1227734668@qq.com> Date: Tue, 1 Aug 2023 10:31:24 +0800 Subject: [PATCH] Replace argument with pre-sized array --- .../ibatis/executor/loader/AbstractSerialStateHolder.java | 4 ++-- src/main/java/org/apache/ibatis/plugin/Plugin.java | 2 +- .../org/apache/ibatis/reflection/ParamNameResolver.java | 2 +- src/main/java/org/apache/ibatis/reflection/Reflector.java | 6 +++--- .../ibatis/reflection/factory/DefaultObjectFactory.java | 6 +++--- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/apache/ibatis/executor/loader/AbstractSerialStateHolder.java b/src/main/java/org/apache/ibatis/executor/loader/AbstractSerialStateHolder.java index c5d36d96de5..af12636a11f 100644 --- a/src/main/java/org/apache/ibatis/executor/loader/AbstractSerialStateHolder.java +++ b/src/main/java/org/apache/ibatis/executor/loader/AbstractSerialStateHolder.java @@ -58,8 +58,8 @@ public AbstractSerialStateHolder(final Object userBean, this.userBean = userBean; this.unloadedProperties = new HashMap<>(unloadedProperties); this.objectFactory = objectFactory; - this.constructorArgTypes = constructorArgTypes.toArray(new Class[0]); - this.constructorArgs = constructorArgs.toArray(new Object[0]); + this.constructorArgTypes = constructorArgTypes.toArray(new Class[constructorArgTypes.size()]); + this.constructorArgs = constructorArgs.toArray(new Object[constructorArgs.size()]); } @Override diff --git a/src/main/java/org/apache/ibatis/plugin/Plugin.java b/src/main/java/org/apache/ibatis/plugin/Plugin.java index e4f829221ed..b58b84c4f78 100644 --- a/src/main/java/org/apache/ibatis/plugin/Plugin.java +++ b/src/main/java/org/apache/ibatis/plugin/Plugin.java @@ -96,7 +96,7 @@ private static Class[] getAllInterfaces(Class type, Map, Set[0]); + return interfaces.toArray(new Class[interfaces.size()]); } } diff --git a/src/main/java/org/apache/ibatis/reflection/ParamNameResolver.java b/src/main/java/org/apache/ibatis/reflection/ParamNameResolver.java index 53d0c82702c..8fab64f4142 100644 --- a/src/main/java/org/apache/ibatis/reflection/ParamNameResolver.java +++ b/src/main/java/org/apache/ibatis/reflection/ParamNameResolver.java @@ -104,7 +104,7 @@ private static boolean isSpecialParameter(Class clazz) { * @return the names */ public String[] getNames() { - return names.values().toArray(new String[0]); + return names.values().toArray(new String[names.size()]); } /** diff --git a/src/main/java/org/apache/ibatis/reflection/Reflector.java b/src/main/java/org/apache/ibatis/reflection/Reflector.java index abd03c70c31..bcdc4dc7c8a 100644 --- a/src/main/java/org/apache/ibatis/reflection/Reflector.java +++ b/src/main/java/org/apache/ibatis/reflection/Reflector.java @@ -76,8 +76,8 @@ public Reflector(Class clazz) { addSetMethods(classMethods); addFields(clazz); } - readablePropertyNames = getMethods.keySet().toArray(new String[0]); - writablePropertyNames = setMethods.keySet().toArray(new String[0]); + readablePropertyNames = getMethods.keySet().toArray(new String[getMethods.size()]); + writablePropertyNames = setMethods.keySet().toArray(new String[setMethods.size()]); for (String propName : readablePropertyNames) { caseInsensitivePropertyMap.put(propName.toUpperCase(Locale.ENGLISH), propName); } @@ -303,7 +303,7 @@ private Method[] getClassMethods(Class clazz) { Collection methods = uniqueMethods.values(); - return methods.toArray(new Method[0]); + return methods.toArray(new Method[methods.size()]); } private void addUniqueMethods(Map uniqueMethods, Method[] methods) { diff --git a/src/main/java/org/apache/ibatis/reflection/factory/DefaultObjectFactory.java b/src/main/java/org/apache/ibatis/reflection/factory/DefaultObjectFactory.java index 8c55a7b7946..e5003120b5e 100644 --- a/src/main/java/org/apache/ibatis/reflection/factory/DefaultObjectFactory.java +++ b/src/main/java/org/apache/ibatis/reflection/factory/DefaultObjectFactory.java @@ -68,13 +68,13 @@ private T instantiateClass(Class type, List> constructorArgTypes throw e; } } - constructor = type.getDeclaredConstructor(constructorArgTypes.toArray(new Class[0])); + constructor = type.getDeclaredConstructor(constructorArgTypes.toArray(new Class[constructorArgTypes.size()])); try { - return constructor.newInstance(constructorArgs.toArray(new Object[0])); + return constructor.newInstance(constructorArgs.toArray(new Object[constructorArgs.size()])); } catch (IllegalAccessException e) { if (Reflector.canControlMemberAccessible()) { constructor.setAccessible(true); - return constructor.newInstance(constructorArgs.toArray(new Object[0])); + return constructor.newInstance(constructorArgs.toArray(new Object[constructorArgs.size()])); } throw e; }