石河子规划建设局网站电子商务网站建设任务分解
石河子规划建设局网站,电子商务网站建设任务分解,鼎城网站建设,东莞网络营销策划类型通配符 类型通配符? 一般用于接受使用#xff0c;不能够做添加List?#xff1a;表示元素类型未知的list#xff0c;它的元素可以匹配任何类型带通配符的List仅表示它是各种泛型List的父类#xff0c;并不能把元素添加到其中类型通配符上限#xff1…类型通配符 类型通配符? 一般用于接受使用不能够做添加List?表示元素类型未知的list它的元素可以匹配任何类型带通配符的List仅表示它是各种泛型List的父类并不能把元素添加到其中类型通配符上限? extend 类型 List ? extends MayiktParent它表示的类型是MayiktParent或子类型类型通配符下限? super 类型 List ? super MayiktParent它表示的类型是MayiktParent或者其父类型 示例代码
package com.collection.Demo06;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class Test02 {public static void main(String[] args) {ArrayListString arrayListString new ArrayList();for (int i 0; i 5; i) {arrayListString.add(i: i);}ArrayListInteger arrayListInteger new ArrayList();printList(arrayListString);printList(arrayListInteger);List? arrayList new ArrayList();
// arrayList.add(fsd);//报错不能添加}//参数List类型的泛型明确String类型
// public static void printList(ListString stringList){}/*** 如果不明确参数List类型的泛型是什么类型可以使用?* List? 只能用于接收可以接收所有类型的泛型类型但不能用于添加*/public static void printList(List? stringList) {
// stringList.add(mayilt);//报错不能用于添加∵类型不明确没法添加
// Object o stringList.get(0);//不能添加但可以get,类型是ObjectIterator? iterator stringList.iterator();while (iterator.hasNext()) {System.out.println(iterator.next());}}
}上限和下限
MayiktParent.java 父类
package com.collection.Demo06;public class MayiktParent {
}Student.java 子类
package com.collection.Demo06;public class Student extends MayiktParent{
}Test03.java 测试
package com.collection.Demo06;import java.util.ArrayList;
import java.util.List;public class Test03 {public static void main(String[] args) {ListMayiktParent mayiktParents new ArrayList();ListStudent students new ArrayList();ListInteger integers new ArrayList();ListObject objects new ArrayList();printList1(mayiktParents);//上限printList1(students);//上限
// printList1(integers);//报错∵ integer与MayiktParent没有任何关系
// printList1(objects);//报错只能是MayiktParent与它的子类printList2(mayiktParents); //下限printList2(objects);//下限——父类
// printList2(students);//报错
// printList2(integers);//报错printList3(mayiktParents);printList3(students);printList3(objects);
// printList3(integers);//报错}/*** 问题: List? 接收所有类型如何限制* 解决: 类型通配符 上限 和 下限* 上限: ? extend 类型 List ? extends MayiktParent它表示的类型是MayiktParent或子类型* 下限: ? super 类型 List ? super MayiktParent它表示的类型是MayiktParent或者其父类型*///List? extends MayiktParent 只能接收MayiktParent 和它的子类public static void printList1(List? extends MayiktParent list) { //上限}//List? super MayiktParent 只能接收MayiktParent 和它的父类public static void printList2(List? super MayiktParent list) { //下限}//如果想是使用super让可以接收mayiktParents和studentspublic static void printList3(List? super Student list) { //下限}
}下一篇文章可变参数
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/89343.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!