源码阅读中的常客--泛型

了解泛型一个例子足矣,多加应用提高代码的拓展性的同时也能提升逼格!

public  List show(T t, Collection c)
  1. 从左到右第一个T充当修饰符的作用,表示这个被修饰的方法是个泛型方法(就像被static修饰的方法为静态方法一样),此处的可不是表示返回值类型哦!
  2. 第二个T,表示这个方法返回值类型为List,且这个List有泛型,只能存T类型的数据;
  3. 第三个T,表示这个方法的参数类型。

疑问:一个方法的返回值类型后面加不加有什么区别呢?

class Demo{
  public  List show(T t, Collection c){
      for(T t : c){
          c.add(t);
      }  
  }
}

的方法相当于为该方法声明了一个类型为T的类,这个方法放到任意一个类中都不会报错的。

  • 不加
class Demo{
  public  List show(T t, Collection c){
      for(T t : c){
          c.add(t);
      }  
  }
}
  • 不加方法相当于没有声明类型为T的类,这时必须在类上面加上泛型T,不然这个方法会报错的。
最后:泛型的声明,必须在方法的修饰符(public,static,final,abstract等)之后,返回值声明之前。

你可能感兴趣的:(源码阅读中的常客--泛型)