泛型类的定义与使用
1.定义
泛型类表示类中有一个未知的类型。
泛型类的定义格式:
-
格式:修饰符 class 类名<类型>{ }
-
范例:public class Generic< T >{ }
T可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示泛型
2.使用
需求:给学生和老师两个类的成员变量赋值并在控制台输出
方法一:
首先定义两个类Student类和Teacher类,最后在测试类中实现结果
package com.genericity.example01;
public class Student {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.genericity.example01;
public class Teacher {
private Integer age;
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
package com.genericity.example01;
public class Test {
public static void main(String[] args) {
Student s = new Student();
s.setName("郝佳乐");
System.out.println(s.getName());
Teacher t = new Teacher();
t.setAge(30);
System.out.println(t.getAge());
}
}
方法二:
使用泛型类完成需求,定义一个泛型类public class Generic{ },T可以为任意类型,在测试类中创建泛型对象指定具体的类型,这样比方法一简便了许多,不用定义两个类实现,泛型类可以同时设置多个类型的参数。
泛型类:
package com.genericity.example01;
//泛型类
public class Generic<T> {
private T t;
public T getT() {
return t;
}
public void setT(T t) {
this.t = t;
}
}
测试类:
package com.genericity.example01;
public class GenericDemo {
public static void main(String[] args) {
Generic<String> g1=new Generic<String>();
g1.setT("郝佳乐");
System.out.println(g1.getT());
Generic<Integer> g2=new Generic<Integer>();
g2.setT(30);
System.out.println(g2.getT());
}
}