最近发现一个VisualVm的插件:BTrace(本生也是一个可以独立运行的程序),防止以后遗忘记录一下。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* TODO Comment of TestList
*/
public class TestList {
public static List<String> mergeList(List<String> list1, List<String> list2, Map<String, String> map) {
List<String> list = new ArrayList<String>();
if (list1 != null && list1.size() > 0) {
for (String str : list1) {
list.add(str);
}
}
if (list2 != null && list2.size() > 0) {
for (String str : list2) {
list.add(str);
}
}
return list;
}
public static void main(String[] args) {
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
List<String> list1 = Arrays.asList("a,b,c,d,e,f,g".split(","));
List<String> list2 = Arrays.asList("h,i,j,k,l,m,n".split(","));
Map<String, String> map = new HashMap();
map.put("key1", "val1");
map.put("key2", "val2");
map.put("key3", "val3");
map.put("key4", "val4");
map.put("key5", "val5");
mergeList(list1, list2, map);
}
}
}
import com.sun.btrace.annotations.BTrace;
import com.sun.btrace.annotations.Kind;
import com.sun.btrace.annotations.Location;
import com.sun.btrace.annotations.OnMethod;
import com.sun.btrace.annotations.Return;
import static com.sun.btrace.BTraceUtils.*;
import java.util.Map;
@BTrace
public class TracingScript {
/* put your code here */
@OnMethod(clazz = "TestList", method = "mergeList", location = @Location(Kind.RETURN))
public static void testList(java.util.List<String> list1, java.util.List<String> list2, Map map,
@Return java.util.List<String> list) {
println(str(list1));
println("----------------------------------");
println(str(list2));
println("----------------------------------");
printMap(map);
println("----------------------------------");
println(str(list));
}
}
参考学习:
http://learnworld.iteye.com/blog/1402763