package com.sphere.fanxing;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Queue;
import java.util.Set;
/**
* 泛型容器生成工具类
*
*/
public class VectorUtils {
public static Map map(){
return new HashMap();
}
public static List list(){
return new ArrayList();
}
public static LinkedList iList(){
return new LinkedList();
}
public static Set set(){
return new HashSet();
}
public static Queue queue(){
return new LinkedList();
}
}
package com.sphere.fanxing;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Queue;
public class Test{
public static void main(String[] args) {
System.out.println(print(new StringBuffer("泛型方法")));;
System.out.println("===========================");
genericMethod(1.0f,10,"泛型");
Map> sls = VectorUtils.map();
List list = VectorUtils.list();
Queue queue = VectorUtils.queue();
makeList("a","b","c","d","e");
List ls = makeList("ABCDEFGHIJKLMN".split(""));
System.out.println(ls);
}
private static T print(T t){
String str = "...";
str = t.toString() + str;
return (T)str;
}
/**
* x,y,z分别可以是不同的类型
* @param x
* @param y
* @param z
*/
private static void genericMethod(T1 x, T2 y, T3 z){
System.out.println(x.getClass().getName());
System.out.println(y.getClass().getName());
System.out.println(z.getClass().getName());
}
/**
* 泛型方法 可变长参数
* @param args
* @return
*/
public static List makeList(T... args){
List list = new ArrayList();
StringBuilder sb = new StringBuilder();
for (T item : args) {
list.add(item);
sb.append(item);
}
System.out.println("list中元素个数:"+list.size()+",toString() = "+sb.toString());
return list;
}
}