mirror of
https://github.com/tiennm99/zfoo.git
synced 2026-05-20 05:27:48 +00:00
perf[protocol]: 优化ArrayUtils里的listToArray方法
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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*********************************
|
||||
|
||||
|
||||
Reference in New Issue
Block a user