假如一段程序需要被很多类型对象所调用,比如有String类型的对象还有个File类型的对象,那么如果你写死了类的参数类型,就拿写String了类型之后(例子1),你想用File类型的对象调用此类就不能行得通。只能再写一个改变了参数类型的类。
普通的写法
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 + '\\'' +
'}';
}
}
泛型类
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),这样当你有一个其他类型的对象也可以复用这个类,使得这个类更加的灵活