本笔记来源于:尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)
b站视频
# Java 泛型中通配符详解
1.通配符的使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
@Test public void test3(){ List<Object> list1 = null; List<String> list2 = null;
List<?> list = null;
list = list1; list = list2;
List<String> list3 = new ArrayList<>(); list3.add("AA"); list3.add("BB"); list3.add("CC"); list = list3;
list.add(null);
Object o = list.get(0); System.out.println(o); }
public void print(List<?> list){ Iterator<?> iterator = list.iterator(); while(iterator.hasNext()){ Object obj = iterator.next(); System.out.println(obj); } }
|
2.涉及通配符的集合的数据的写入和读取:
见上
3.有限制条件的通配符的使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
@Test public void test4(){
List<? extends Person> list1 = null; List<? super Person> list2 = null;
List<Student> list3 = new ArrayList<Student>(); List<Person> list4 = new ArrayList<Person>(); List<Object> list5 = new ArrayList<Object>();
list1 = list3; list1 = list4;
list2 = list4; list2 = list5;
list1 = list3; Person p = list1.get(0);
list2 = list4; Object obj = list2.get(0);
list2.add(new Person()); list2.add(new Student()); }
|