Skip to content

Commit 0b62da3

Browse files
committed
修改递归搜索request方法中存储已经访问对象的方式
1 parent 14222a6 commit 0b62da3

File tree

1 file changed

+7
-15
lines changed

1 file changed

+7
-15
lines changed

src/main/java/me/gv7/tools/josearcher/searcher/SearchRequstByRecursive.java

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,8 @@
1212
import me.gv7.tools.josearcher.util.TypeUtils;
1313
import org.apache.log4j.Logger;
1414
import java.lang.reflect.Field;
15-
import java.util.ArrayList;
16-
import java.util.Iterator;
17-
import java.util.List;
18-
import java.util.Map;
15+
import java.util.*;
16+
1917
import static me.gv7.tools.josearcher.util.Common.*;
2018
import static me.gv7.tools.josearcher.util.TypeUtils.*;
2119

@@ -32,7 +30,7 @@ public class SearchRequstByRecursive {
3230
private boolean is_debug = false;
3331
private String result_file;
3432
private String all_chain_file;
35-
private List<Object> searched = new ArrayList<>();
33+
private Set<Object> visited = new HashSet<Object>();
3634

3735

3836
public SearchRequstByRecursive(Object target, List<Keyword> keys){
@@ -73,18 +71,12 @@ private void searchObject(String filed_name,Object filed_object,String log_chain
7371
}
7472

7573
//如果已经搜索过这个对象就返回不再继续搜索
76-
if(searched.size() <= 0){
77-
searched.add(filed_object);
78-
}else {
79-
for (Object obj : searched) {
80-
if (obj == filed_object) {
81-
return;
82-
}
83-
}
84-
searched.add(filed_object);
74+
if(!visited.contains(filed_object)) {
75+
visited.add(filed_object);
76+
}else{
77+
return;
8578
}
8679

87-
8880
String new_log_chain = "";
8981
Class clazz = filed_object.getClass();
9082

0 commit comments

Comments
 (0)