perf[protocol]: 优化ArrayUtils里的listToArray方法

This commit is contained in:
jaysunxiao committed 2021-06-25 14:36:15 +08:00
1 parent 5398fedd9d
commit 5ccfd47bda
3 files changed
+9 -10

No files matched your search

@@ -170,10 +170,7 @@ public abstract class ArrayUtils {
var length = list.size(); var length = list.size();
var objectArray = Array.newInstance(clazz, length); var objectArray = Array.newInstance(clazz, length);
for (var i = 0; i < length; i++) { System.arraycopy(list.toArray(), 0, objectArray, 0, length);
Array.set(objectArray, i, list.get(i));
}
return (T[]) objectArray; return (T[]) objectArray;
} }
@@ -14,6 +14,7 @@ package com.zfoo.protocol.registration;
import com.zfoo.protocol.IPacket; import com.zfoo.protocol.IPacket;
import com.zfoo.protocol.ProtocolManager; import com.zfoo.protocol.ProtocolManager;
import com.zfoo.protocol.collection.ArrayUtils;
import com.zfoo.protocol.collection.CollectionUtils; import com.zfoo.protocol.collection.CollectionUtils;
import com.zfoo.protocol.exception.RunException; import com.zfoo.protocol.exception.RunException;
import com.zfoo.protocol.exception.UnknownException; import com.zfoo.protocol.exception.UnknownException;
@@ -366,8 +367,8 @@ public class ProtocolAnalysis {
var protocol = new ProtocolRegistration(); var protocol = new ProtocolRegistration();
protocol.setId(protocolId); protocol.setId(protocolId);
protocol.setConstructor(constructor); protocol.setConstructor(constructor);
protocol.setFields(fields.toArray(new Field[fields.size()])); protocol.setFields(ArrayUtils.listToArray(fields, Field.class));
protocol.setFieldRegistrations(registrationList.toArray(new IFieldRegistration[registrationList.size()])); protocol.setFieldRegistrations(ArrayUtils.listToArray(registrationList, IFieldRegistration.class));
protocol.setModule(module.getId()); protocol.setModule(module.getId());
return protocol; return protocol;
} }
@@ -12,6 +12,7 @@
package com.zfoo.protocol.util; package com.zfoo.protocol.util;
import com.zfoo.protocol.collection.ArrayUtils;
import com.zfoo.protocol.exception.RunException; import com.zfoo.protocol.exception.RunException;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
@@ -106,7 +107,7 @@ public abstract class ReflectionUtils {
list.add(field); list.add(field);
} }
} }
return list.toArray(new Field[list.size()]); return ArrayUtils.listToArray(list, Field.class);
} }
public static Field getFieldByNameInPOJOClass(Class<?> clazz, String fieldName) { public static Field getFieldByNameInPOJOClass(Class<?> clazz, String fieldName) {
@@ -132,7 +133,7 @@ public abstract class ReflectionUtils {
list.add(method); list.add(method);
} }
} }
return list.toArray(new Method[list.size()]); return ArrayUtils.listToArray(list, Method.class);
} }
public static Method[] getMethodsByNameInPOJOClass(Class<?> clazz, String methodName) { public static Method[] getMethodsByNameInPOJOClass(Class<?> clazz, String methodName) {
@@ -143,7 +144,7 @@ public abstract class ReflectionUtils {
list.add(method); 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); Collections.addAll(list, methods);
superClazz = superClazz.getSuperclass(); superClazz = superClazz.getSuperclass();
} }
return list.toArray(new Method[list.size()]); return ArrayUtils.listToArray(list, Method.class);
} }
//*************************************操作Class********************************* //*************************************操作Class*********************************