Java --- 泛型 <T> 的使用介绍 之 泛型方法

    这是小编第二篇介绍泛型的文章了,上篇是介绍 这次呢,介绍一下泛型方法,对编写工具类有较大的帮助,因为参数及返回值可以灵活自由定义。Let go!

编写泛型方法:

//public 后面的 <T> 是指明方法返回值及参数中的 T 属于泛型,
 //而不是某个名为 T 的类。
 public <T> List<T> show(T[] arr) {
          
   
        ArrayList<T> list = new ArrayList<>();
        for (T t : arr){
          
   
            list.add(t);
        }
        return list;
    }

使用:

public class GenericTest {
          
   
	@Test
    public void test2(){
          
   
    	//注意:泛型方法的参数不是为基本数据类型
    	//定义 char[] 数组,则编译不能通过。
    	
    	//1,创建Integer类型数组
        Integer[] integers = new Integer[]{
          
   1,2,34,5};
        //2,创建String类型数组
        String[] strings = new String[]{
          
   "dcd","a","cd","ad"};
        //3,创建自定义类的数组。Good 为小编自定义的类。
        //下面会有该类代码
        Good[] goods = new Good[2];
        goods[0] = new Good(12,"apple");
        goods[1] = new Good(134, "phone");

		//4,调用泛型方法
        List<Integer> show = show(integers);
        List<String> stringList = show(strings);
        List<Good> goodList = show(goods);

        System.out.println(show);
        System.out.println(stringList);
        System.out.println(goodList);
    }
    
	public <T> List<T> show(T[] arr) {
          
   
        ArrayList<T> list = new ArrayList<>();
        for (T t : arr){
          
   
            list.add(t);
        }
        return list;
    }
}

输出:

D:jdkjdk1.8.0_171injava.exe
[1, 2, 34, 5]
[dcd, a, cd, ad]
[Good(price=12, name=apple), Good(price=134, name=phone)]

Good 类:

@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Good{
          
   

    private int price;
    private String name;
}
经验分享 程序员 微信小程序 职场和发展