美文网首页
源码阅读中的常客--泛型

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

作者: LiChangBao | 来源:发表于2019-03-17 01:12 被阅读0次

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

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

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

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

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

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

    相关文章

      网友评论

          本文标题:源码阅读中的常客--泛型

          本文链接:https://www.haomeiwen.com/subject/dzqymqtx.html