泛型
参数化类型。就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。
- 在编译之后程序会采取去泛型化的措施。Java中的泛型,只在编译阶段有效。
泛型类
不需要强制类型转换
提高了代码的复用率
public class Person<A,B,T,D> {private A data;public A getData() {return data;}public void setData(A data) {this.data = data;}}
泛型接口
实现的时候可以选择指定类型,或者不指定类型。
public interface Name<T> {T getData();}//不指定类型public class Interface1<T> implements Name<T>{private T text;@Overridepublic T getData() {return text;}}
泛型方法
public class Demo1 {public static void main(String[] args) {print("cnmcnm");}public static <A> void print(A a){System.out.println(a);}}
泛型限制类型
public class Demo1 {public static void main(String[] args) {Plate<Apple> p = new Plate<>();}}interface Fruit{}class Apple implements Fruit{}class Plate<T extends Fruit>{T data;}
泛型中的通配符 ?
public class Demo1 {public static void main(String[] args) {//上届限定,只能用父里面的子Plate<? extends Fruit> p = new Plate<Apple>();//下届限定Plate<? super Apple> p2 = new Plate<Fruit>();}}interface Fruit{}class Apple implements Fruit{}class Plate<T extends Fruit>{T data;}
