Skip to content

Commit 9b23730

Browse files
Copilotbinarywang
andcommitted
性能优化:改进 getAllFields 方法的效率并避免遍历 Object 类
Co-authored-by: binarywang <[email protected]>
1 parent f048e7c commit 9b23730

File tree

2 files changed

+5
-8
lines changed

2 files changed

+5
-8
lines changed

weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/util/RsaCryptoUtil.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import java.util.ArrayList;
1818
import java.util.Base64;
1919
import java.util.Collection;
20+
import java.util.Collections;
2021
import java.util.List;
2122

2223
/**
@@ -46,11 +47,9 @@ public static void encryptFields(Object encryptObject, X509Certificate certifica
4647
*/
4748
private static List<Field> getAllFields(Class<?> clazz) {
4849
List<Field> fields = new ArrayList<>();
49-
while (clazz != null) {
50+
while (clazz != null && clazz != Object.class) {
5051
Field[] declaredFields = clazz.getDeclaredFields();
51-
for (Field field : declaredFields) {
52-
fields.add(field);
53-
}
52+
java.util.Collections.addAll(fields, declaredFields);
5453
clazz = clazz.getSuperclass();
5554
}
5655
return fields;

weixin-java-pay/src/test/java/com/github/binarywang/wxpay/v3/util/RsaCryptoUtilTest.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -186,11 +186,9 @@ class ChildRequest extends ParentRequest {
186186
*/
187187
private List<Field> getAllFields(Class<?> clazz) {
188188
List<Field> fields = new ArrayList<>();
189-
while (clazz != null) {
189+
while (clazz != null && clazz != Object.class) {
190190
Field[] declaredFields = clazz.getDeclaredFields();
191-
for (Field field : declaredFields) {
192-
fields.add(field);
193-
}
191+
java.util.Collections.addAll(fields, declaredFields);
194192
clazz = clazz.getSuperclass();
195193
}
196194
return fields;

0 commit comments

Comments
 (0)