当前位置: 首页 > news >正文

博罗做网站哪家强网站怎么优化关键词

博罗做网站哪家强,网站怎么优化关键词,wordpress文章目录树,芜湖弋江区最新消息1.泛型 介绍#xff1a; 泛型可以在编译阶段约束操作的数据类型#xff0c;并进行检查。 应用场景#xff1a; 如果在定义类、方法、接口的时候#xff0c;如果类型不确定#xff0c;就可以使用泛型。 格式#xff1a; 数据类型 注意#xff1a; 泛型只支持引…1.泛型 介绍 泛型可以在编译阶段约束操作的数据类型并进行检查。 应用场景 如果在定义类、方法、接口的时候如果类型不确定就可以使用泛型。 格式 数据类型 注意 泛型只支持引用数据类型 如下图中String就是泛型 细节 1.指定泛型的具体类型后传递数据时可以传入该类型或者其子类类型 2.如果不写泛型类型默认为Object 好处 1.统一数据类型 2.把运行时期的问题提前到了编译期间避免了强制类型转换可能出现的异常因为在编译阶段类型就能确定下来 扩展 Java中的泛型为伪泛型即若使用泛型确定类型后元素若要存入集合泛型就会检查是否为规定的类存入集合中时元素为Object类但是获取元素时代码底层会将Object类强转成泛型规定的类。 且编译时会擦除泛型在class文件中集合中的元素仍为Object类。 2.泛型类 泛型类即在类名后面添加泛型约束的类。 下面创建一个泛型类 代码演示 泛型类MyArratList public class MyArrayList E {Object[] obj new Object[10];int size;public boolean add(E e) {obj[size] e;size;return true;}public E get(int index) {return (E) obj[index];}Overridepublic String toString() {return Arrays.toString(obj);} }测试类GenericsDemo public class GenericsDemo {public static void main(String[] args) {MyArrayListInteger list new MyArrayList();list.add(111);list.add(222);list.add(333);System.out.println(list);System.out.println(list.get(1));} } 运行结果 3.泛型方法 介绍 泛型方法有两种形式一种是泛型类中的方法都可以使用类名后定义的泛型第二种是在方法申明上定义自己的泛型只有本方法能用下面详细介绍第二种形式。 格式 修饰符 类型 返回值类型 方法名类型 变量名{ } 小练习 定义一个工具类ListUtil类中定义一个静态方法addAll用来添加多个集合元素 代码 ListUtil类 public class ListUtil {//因为是工具类不需要构造方法private ListUtil(){}public static E void addAll(ArrayListE list,E...e) {for (E element : e) {list.add(element);}} } 测试类Test public class Test {public static void main(String[] args) {ArrayListString list new ArrayList();ListUtil.addAll(list,aaa, bbb, ccc);System.out.println(list);} }运行结果 4.泛型接口 当借口中类型不确定时就可以使用泛型接口 格式 修饰符 interface 接口名类型{ } 使用方法 方法一.实现类给出具体类型 代码演示 演示代码具体类型为String ListString即为泛型接口重写List中的方法后其中的泛型方法类型也被指定为String public class MyArrayList2 implements ListString {Overridepublic int size() {return 0;}Overridepublic boolean isEmpty() {return false;}Overridepublic boolean contains(Object o) {return false;}Overridepublic IteratorString iterator() {return null;}Overridepublic Object[] toArray() {return new Object[0];}Overridepublic T T[] toArray(T[] a) {return null;}Overridepublic boolean add(String s) {return false;}Overridepublic boolean remove(Object o) {return false;}Overridepublic boolean containsAll(Collection? c) {return false;}Overridepublic boolean addAll(Collection? extends String c) {return false;}Overridepublic boolean addAll(int index, Collection? extends String c) {return false;}Overridepublic boolean removeAll(Collection? c) {return false;}Overridepublic boolean retainAll(Collection? c) {return false;}Overridepublic void clear() {}Overridepublic String get(int index) {return null;}Overridepublic String set(int index, String element) {return null;}Overridepublic void add(int index, String element) {}Overridepublic String remove(int index) {return null;}Overridepublic int indexOf(Object o) {return 0;}Overridepublic int lastIndexOf(Object o) {return 0;}Overridepublic ListIteratorString listIterator() {return null;}Overridepublic ListIteratorString listIterator(int index) {return null;}Overridepublic ListString subList(int fromIndex, int toIndex) {return null;} } 方法二.实现类延续泛型创建对象时再确定 代码演示 这种情况下重写的List方法中使用泛型的继续使用类名后定义的泛型 public class MyArrayList3E implements ListE {Overridepublic int size() {return 0;}Overridepublic boolean isEmpty() {return false;}Overridepublic boolean contains(Object o) {return false;}Overridepublic IteratorE iterator() {return null;}Overridepublic Object[] toArray() {return new Object[0];}Overridepublic T T[] toArray(T[] a) {return null;}Overridepublic boolean add(E e) {return false;}Overridepublic boolean remove(Object o) {return false;}Overridepublic boolean containsAll(Collection? c) {return false;}Overridepublic boolean addAll(Collection? extends E c) {return false;}Overridepublic boolean addAll(int index, Collection? extends E c) {return false;}Overridepublic boolean removeAll(Collection? c) {return false;}Overridepublic boolean retainAll(Collection? c) {return false;}Overridepublic void clear() {}Overridepublic E get(int index) {return null;}Overridepublic E set(int index, E element) {return null;}Overridepublic void add(int index, E element) {}Overridepublic E remove(int index) {return null;}Overridepublic int indexOf(Object o) {return 0;}Overridepublic int lastIndexOf(Object o) {return 0;}Overridepublic ListIteratorE listIterator() {return null;}Overridepublic ListIteratorE listIterator(int index) {return null;}Overridepublic ListE subList(int fromIndex, int toIndex) {return null;} } 5.泛型通配符 作用 可以限制类型的范围 应用场景 如果类型不确定但是知道传递的都是哪个继承体系中的就可以使用泛型的通配符 格式 extend E                表示可以传递E和E的所有子类类型 super E                  表示可以传递E和E的所有父类类型 代码演示 public class GenericsDemo2 {public static void main(String[] args) {//创建Ye Fu Zi的集合ArrayListYe list1 new ArrayList();ArrayListFu list2 new ArrayList();ArrayListZi list3 new ArrayList();//调用方法method(list1);method(list2);method(list3);}//定义方法在集合中调用对象public static void method(ArrayList? extends Ye list){System.out.println(list);}//创建最高父类爷class Ye{}//创建父继承爷class Fu extends Ye{}//创建子继承父class Zi extends Fu{} } 运行结果 也可以把上述method方法中的泛型通配符改成? super Zi 和上述代码效果一样。
http://www.zqtcl.cn/news/512308/

相关文章:

  • 北京市昌平网站建设小米网络营销案例分析
  • 怎么利用360域名做网站微信商城怎么弄
  • 中山h5网站建设天津网站建设技术托管
  • 建网站买的是什么商城网站建设合同
  • 购物网站制作样例有没有专门学做婴儿衣服的网站
  • 济南网站建设 找小七买友情链接有用吗
  • 南阳网站建设域名公司泉州关键词排名seo
  • 网站建设在线推广宁夏快速自助制作网站
  • 专业网站建设好不好wordpress编辑文章更新失败
  • 河南郑州网站建设哪家公司好html5 网站正在建设中
  • 免费ppt模板下载医学类江门seo网站推广
  • 智慧软文网站群辉wordpress地址
  • 自己怎么做拼单网站外贸网站 源码
  • 做网站如何防止被黑网页无法访问如何解决360浏览器
  • 专门做设计的网站互联网运营培训班哪个好
  • 烟台网站建设网站推广做网站与数据库的关系
  • 深圳网站设计成功刻成全视频免费观看在线看第7季高清
  • 淮阳城乡建设局网站seo技术团队
  • 建设博客网站游戏交易类网站seo怎么做
  • 做系统软件的网站wordpress网站会员太多
  • 上海门户网站怎么登录网站开发竞价单页
  • 东莞市外贸网站建设公司软件开发 系统开发 网站开发服务
  • 泉州制作网站设计南宁网站排名外包
  • 南通网站建设入门wordpress google seo
  • 怎么建立图片的网站吗网站响应式是什么意思
  • 网站建设买了服务器后怎么做WordPress多城市
  • 网站建设凭证成都网站设计公司
  • 创新创业营销策略网站建设等做钢材的都用什么网站
  • 英文免费网站模板大庆+网站建设
  • 品牌网站建设内容框架网站首页收录没了