1.泛型类
2.泛型接口
3.泛型方法
4.泛型集合
5.泛型通配符:?
package com.ligy.studymvc; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.Set; @SpringBootTest public class JHTests { public class AA<T> { private T a; public T getA() { return a; } public void setA(T a) { this.a = a; } } //泛型方法 <M> void aa(M a) { System.out.println(a); } //泛型通配符:? //只能作参数传递,不能实例化的时候用 void show(ArrayList<?> list) { Iterator<?> iterator = list.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } } @Test void test3() { aa("111"); aa(222); AA<Integer> t1 = new AA<>(); t1.setA(123); System.out.println(t1.getA()); AA<String> t2 = new AA<>(); t2.setA("aaaa"); System.out.println(t2.getA()); ArrayList<Integer> t3 = new ArrayList<>(); t3.add(11); t3.add(22); show(t3); ArrayList<String> t4 = new ArrayList<>(); t4.add("aa"); t4.add("bb"); show(t4); } @Test void test2() { ArrayList<String> list = new ArrayList<>(); list.add("111"); //list.add(222); //这样报错;数据类型,不能第二种 String o1 = list.get(0); System.out.println(o1); } @Test void test1() { ArrayList list = new ArrayList(); list.add("111"); list.add(222); Object o1 = list.get(0); Object o2 = list.get(1); //int o2 = list.get(1); //这样编译报错 System.out.println(o1); System.out.println(o2); } }