为何要用泛型

   假如一段程序需要被很多类型对象所调用,比如有String类型的对象还有个File类型的对象,那么如果你写死了类的参数类型,就拿写String了类型之后(例子1),你想用File类型的对象调用此类就不能行得通。只能再写一个改变了参数类型的类。

例子1

普通的写法

class Student {
     
     private String items;
     
     public Student() {
     }

     public Student(String items) {
         this.items = items;
     }

     public String getItems() {
         return items;
     }

     public void setItems(String items) {
         this.items = items;
     }

     @Override
     public String toString() {
         return "Student{" +
                 "items='" + items + '\\'' +
                 '}';
     }
 }

例子2

泛型类

 class Student <T>{

     private T items;
    
     public Student() {
     }

     public Student(T items) {
         this.items = items;
     }

     public T getItems() {
         return items;
     }

     public void setItems(T items) {
         this.items = items;
     }

     @Override
     public String toString() {
         return "Student{" +
                 "items='" + items + '\\'' +
                 '}';
     }
 }

在这段代码中已经写死了关于输入了类型,当你有一个File类型的对象的时候,你就不能使用这个类,你只能将String改成File类型,这可以说这个类的复用性可谓是非常的差,这个时候你就可使用泛型类来解决这个问题(例子2),这样当你有一个其他类型的对象也可以复用这个类,使得这个类更加的灵活