From 5ccfd47bdafa4c757b1bb943d323e736f59f3671 Mon Sep 17 00:00:00 2001 From: jaysunxiao Date: Fri, 25 Jun 2021 14:36:15 +0800 Subject: [PATCH] =?UTF-8?q?perf[protocol]:=20=E4=BC=98=E5=8C=96ArrayUtils?= =?UTF-8?q?=E9=87=8C=E7=9A=84listToArray=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/zfoo/protocol/collection/ArrayUtils.java | 5 +---- .../com/zfoo/protocol/registration/ProtocolAnalysis.java | 5 +++-- .../java/com/zfoo/protocol/util/ReflectionUtils.java | 9 +++++---- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/protocol/src/main/java/com/zfoo/protocol/collection/ArrayUtils.java b/protocol/src/main/java/com/zfoo/protocol/collection/ArrayUtils.java index b2436edd..96657b25 100644 --- a/protocol/src/main/java/com/zfoo/protocol/collection/ArrayUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/collection/ArrayUtils.java @@ -170,10 +170,7 @@ public abstract class ArrayUtils { var length = list.size(); var objectArray = Array.newInstance(clazz, length); - for (var i = 0; i < length; i++) { - Array.set(objectArray, i, list.get(i)); - } - + System.arraycopy(list.toArray(), 0, objectArray, 0, length); return (T[]) objectArray; } diff --git a/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java b/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java index e8f347f9..39e0e2b1 100644 --- a/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java +++ b/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java @@ -14,6 +14,7 @@ package com.zfoo.protocol.registration; import com.zfoo.protocol.IPacket; import com.zfoo.protocol.ProtocolManager; +import com.zfoo.protocol.collection.ArrayUtils; import com.zfoo.protocol.collection.CollectionUtils; import com.zfoo.protocol.exception.RunException; import com.zfoo.protocol.exception.UnknownException; @@ -366,8 +367,8 @@ public class ProtocolAnalysis { var protocol = new ProtocolRegistration(); protocol.setId(protocolId); protocol.setConstructor(constructor); - protocol.setFields(fields.toArray(new Field[fields.size()])); - protocol.setFieldRegistrations(registrationList.toArray(new IFieldRegistration[registrationList.size()])); + protocol.setFields(ArrayUtils.listToArray(fields, Field.class)); + protocol.setFieldRegistrations(ArrayUtils.listToArray(registrationList, IFieldRegistration.class)); protocol.setModule(module.getId()); return protocol; } diff --git a/protocol/src/main/java/com/zfoo/protocol/util/ReflectionUtils.java b/protocol/src/main/java/com/zfoo/protocol/util/ReflectionUtils.java index 16bf36b6..7c1fe588 100644 --- a/protocol/src/main/java/com/zfoo/protocol/util/ReflectionUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/util/ReflectionUtils.java @@ -12,6 +12,7 @@ package com.zfoo.protocol.util; +import com.zfoo.protocol.collection.ArrayUtils; import com.zfoo.protocol.exception.RunException; import java.lang.annotation.Annotation; @@ -106,7 +107,7 @@ public abstract class ReflectionUtils { list.add(field); } } - return list.toArray(new Field[list.size()]); + return ArrayUtils.listToArray(list, Field.class); } public static Field getFieldByNameInPOJOClass(Class clazz, String fieldName) { @@ -132,7 +133,7 @@ public abstract class ReflectionUtils { list.add(method); } } - return list.toArray(new Method[list.size()]); + return ArrayUtils.listToArray(list, Method.class); } public static Method[] getMethodsByNameInPOJOClass(Class clazz, String methodName) { @@ -143,7 +144,7 @@ public abstract class ReflectionUtils { list.add(method); } } - return list.toArray(new Method[list.size()]); + return ArrayUtils.listToArray(list, Method.class); } /** @@ -162,7 +163,7 @@ public abstract class ReflectionUtils { Collections.addAll(list, methods); superClazz = superClazz.getSuperclass(); } - return list.toArray(new Method[list.size()]); + return ArrayUtils.listToArray(list, Method.class); } //*************************************操作Class*********************************