1. 泛型类、泛型接口
1.1 一个最普通的泛型类
class Person<T>{
String name;
T info;
public T getInfo() {
return info;
}
public void setInfo(T info) {
this.info = info;
}
}
@Test
public void test1(){
Person person1 = new Person();
person1.setInfo(22);
person1.setInfo("33");
Person<String> person2 = new Person();
person2.setInfo("33");
}
1.2 泛型类的继承
class Person<T>{
String name;
T info;
public T getInfo() {
return info;
}
public void setInfo(T info) {
this.info = info;
}
}
class Stu <T,E> extends Person<T>{
Integer age;
E stuInfo;
public E getStuInfo() {
return stuInfo;
}
public void setStuInfo(E stuInfo) {
this.stuInfo = stuInfo;
}
}
public void test2(){
Stu<String,Integer> stu = new Stu();
stu.setInfo("555");
stu.setStuInfo(555);
}
class Worker<E> extends Person<String> {
Integer age;
E workInfo;
public E getWorkInfo() {
return workInfo;
}
public void setWorkInfo(E workInfo) {
this.workInfo = workInfo;
}
}
@Test
public void test3() {
Worker<String> worker = new Worker<>();
worker.setWorkInfo("333");
worker.setInfo("444");
}
2. 泛型方法
class GenerateTest<T> {
public void show_1(T t) {
System.out.println(t.toString());
}
public <E> E show_2(E t) {
return t;
}
public <T> void show_3(T t) {
System.out.println(t.toString());
}
}