茫茫人海千千万万,感谢这一秒你看到这里。希望我的文章对你的有所帮助!

愿你在未来的日子,保持热爱,奔赴山海!

前言:昨天我们讲到了泛型的概念以及使用它的一些好处!但是对于泛型如何使用还不是特别了解呢?

所以,接下来我们将会展开对泛型的使用一一剖析出来!

😒泛型的使用

泛型虽然通常会被大量的使用在集合当中,但是我们也可以完整的学习泛型知识。泛型有三种使用方式,分别为:泛型类、泛型方法、泛型接口。将数据类型作为参数进行传递。

今天我们将注重学习泛型用于定义类上将如何使用。

😓泛型类

泛型类型用于类的定义中,被称为泛型类。通过泛型可以完成对一组类的操作对外开放相同的接口。最典型的就是各种集合框架容器类,如:List、Set、Map。

  • 泛型类的定义格式:

    修饰符 class 类名<代表泛型的变量> {  }
    

    怕你不清楚怎么使用,这里我还是做了一个简单的泛型类:

    /**
     * @param <T> 这里解释下<T>中的T:
     *           此处的T可以随便写为任意标识,常见的有T、E等形式的参数表示泛型
     *           泛型在定义的时候不具体,使用的时候才变得具体。
     *           在使用的时候确定泛型的具体数据类型。即在创建对象的时候确定泛型。
     */
    public class GenericsClassDemo<T> {
        //t这个成员变量的类型为T,T的类型由外部指定
        private T t;
    
        //泛型构造方法形参t的类型也为T,T的类型由外部指定
        public GenericsClassDemo(T t) {
            this.t = t;
        }
    
        //泛型方法getT的返回值类型为T,T的类型由外部指定
        public T getT() {
            return t;
        }
    }
    

    泛型在定义的时候不具体,使用的时候才变得具体。在使用的时候确定泛型的具体数据类型。即:在创建对象的时候确定泛型

  • 例如:Generic<String> genericString = new Generic<String>("helloGenerics");

    此时,泛型标识T的类型就是String类型,那我们之前写的类就可以这么认为:

    public class GenericsClassDemo<String> {
        private String t;
    
        public GenericsClassDemo(String t) {
            this.t = t;
        }
    
        public String getT() {
            return t;
        }
    }
    

    当你的泛型类型想变为Integer类型时,也是很方便的。直接在创建时,T写为Integer类型即可:

    Generic<Integer> genericInteger = new Generic<Integer>(666);

  • 注意: 定义的泛型类,就一定要传入泛型类型实参么?

    并不是这样,在使用泛型的时候如果传入泛型实参,则会根据传入的泛型实参做相应的限制,此时泛型才会起到本应起到的限制作用。如果不传入泛型类型实参的话,在泛型类中使用泛型的方法或成员变量定义的类型可以为任何的类型。即跟之前的经典案例一样,没有写<font color=#ff1493>ArrayList</font>的泛型类型,容易出现类型强转的问题。

🌸总结

相信各位看官都对泛型的使用有了初步了解,知道如何去使用泛型定义类,那我们继续期待下一章的泛型的更多使用吧!欢迎期待下一章的到来!

让我们也一起加油吧!本人不才,如有什么缺漏、错误的地方,也欢迎各位人才大佬评论中批评指正!当然如果这篇文章确定对你有点小小帮助的话,也请亲切可爱的人才大佬们给个点赞、收藏下吧,一键三连,非常感谢!

学到这里,今天的世界打烊了,晚安!虽然这篇文章完结了,但是我还在,永不完结。我会努力保持写文章。来日方长,何惧车遥马慢!

感谢各位看到这里!愿你韶华不负,青春无悔!