1,泛型的由来:
-
通过Object转型问题引入早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换的问题。也就存在这隐患,所以Java提供了泛型来解决这个安全问题。
2,代码演示
public class Demo3_Generic {
public static void main(String[] args) {
//demo1();
Tool<String> t = new Tool<>();
//t.show("abc");
t.show(true);
}
//自定义
public static void demo1() {
Tool<Student> t = new Tool<>(); //创建工具类对象
t.setObj(new Student("张三",23));
//Worker w = (Worker) t.getObj(); //向下转型
//System.out.println(w);
}
}
-
泛型
package com.xiaoshuai.bean;
public class Tool<Q> {
private Q q;
public Q getObj() {
return q;
}
public void setObj(Q q) {
this.q = q;
}
public<T> void show(T t) { //方法泛型最好与类的泛型一致
System.out.println(t); //如果不一致,需要在方法上声明该泛型
}
public static<W> void print(W w) { //静态方法必须声明自己的泛型
System.out.println(w);
}
}
public class Worker extends Person {
public Worker() {
}
public Worker(String name, int age) {
super(name, age);
}
}