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

网奇e游通旅游网站建设系统如何修改上传到服务器网站优化联系

网奇e游通旅游网站建设系统如何修改上传到服务器,网站优化联系,阳西网站seo,江苏响应式网站建设哪里有什么是泛型 泛型是一种“代码模板”#xff0c;可以用一套代码套用各种类型。 在讲解什么是泛型之前#xff0c;我们先观察Java标准库提供的ArrayList#xff0c;它可以看作“可变长度”的数组#xff0c;因为用起来比数组更方便。 实际上ArrayList内部就是一个Object[]…什么是泛型 泛型是一种“代码模板”可以用一套代码套用各种类型。 在讲解什么是泛型之前我们先观察Java标准库提供的ArrayList它可以看作“可变长度”的数组因为用起来比数组更方便。 实际上ArrayList内部就是一个Object[]数组配合存储一个当前分配的长度就可以充当“可变数组” public class ArrayList {private Object[] array;private int size;public void add(Object e) {...}public void remove(int index) {...}public Object get(int index) {...} }如果用上述ArrayList存储String类型会有这么几个缺点 需要强制转型不方便易出错。 例如代码必须这么写 ArrayList list new ArrayList(); list.add(Hello); // 获取到Object必须强制转型为String: String first (String) list.get(0);很容易出现ClassCastException因为容易“误转型” list.add(new Integer(123)); // ERROR: ClassCastException: String second (String) list.get(1);要解决上述问题我们可以为String单独编写一种ArrayList public class StringArrayList {private String[] array;private int size;public void add(String e) {...}public void remove(int index) {...}public String get(int index) {...} }这样一来存入的必须是String取出的也一定是String不需要强制转型因为编译器会强制检查放入的类型 StringArrayList list new StringArrayList(); list.add(Hello); String first list.get(0); // 编译错误: 不允许放入非String类型: list.add(new Integer(123));问题暂时解决。 然而新的问题是如果要存储Integer还需要为Integer单独编写一种ArrayList public class IntegerArrayList {private Integer[] array;private int size;public void add(Integer e) {...}public void remove(int index) {...}public Integer get(int index) {...} }实际上还需要为其他所有class单独编写一种ArrayList LongArrayList DoubleArrayList PersonArrayList ...这是不可能的JDK的class就有上千个而且它还不知道其他人编写的class。 为了解决新的问题我们必须把ArrayList变成一种模板ArrayListT代码如下 public class ArrayListT {private T[] array;private int size;public void add(T e) {...}public void remove(int index) {...}public T get(int index) {...} }T可以是任何class。这样一来我们就实现了编写一次模版可以创建任意类型的ArrayList // 创建可以存储String的ArrayList: ArrayListString strList new ArrayListString(); // 创建可以存储Float的ArrayList: ArrayListFloat floatList new ArrayListFloat(); // 创建可以存储Person的ArrayList: ArrayListPerson personList new ArrayListPerson();因此泛型就是定义一种模板例如ArrayList然后在代码中为用到的类创建对应的ArrayList类型 ArrayListString strList new ArrayListString();由编译器针对类型作检查 strList.add(hello); // OK String s strList.get(0); // OK strList.add(new Integer(123)); // compile error! Integer n strList.get(0); // compile error!这样一来既实现了编写一次万能匹配又通过编译器保证了类型安全这就是泛型。 向上转型 在Java标准库中的ArrayListT实现了ListT接口它可以向上转型为ListT public class ArrayListT implements ListT {... }ListString list new ArrayListString();即类型ArrayListT可以向上转型为ListT。 要特别注意不能把ArrayListInteger向上转型为ArrayListNumber或ListNumber。 这是为什么呢假设ArrayListInteger可以向上转型为ArrayListNumber观察一下代码 // 创建ArrayListInteger类型 ArrayListInteger integerList new ArrayListInteger(); // 添加一个Integer integerList.add(new Integer(123)); // “向上转型”为ArrayListNumber ArrayListNumber numberList integerList; // 添加一个Float因为Float也是Number numberList.add(new Float(12.34)); // 从ArrayListInteger获取索引为1的元素即添加的Float Integer n integerList.get(1); // ClassCastException!我们把一个ArrayListInteger转型为ArrayListNumber类型后这个ArrayListNumber就可以接受Float类型因为Float是Number的子类。但是ArrayListNumber实际上和ArrayListInteger是同一个对象也就是ArrayListInteger类型它不可能接受Float类型 所以在获取Integer的时候将产生ClassCastException。 实际上编译器为了避免这种错误根本就不允许把ArrayListInteger转型为ArrayListNumber。 ArrayListInteger和ArrayListNumber两者完全没有继承关系。 小结 泛型就是编写模板代码来适应任意类型 泛型的好处是使用时不必对类型进行强制转换它通过编译器对类型进行检查 注意泛型的继承关系可以把ArrayListInteger向上转型为ListIntegerT不能变但不能把ArrayListInteger向上转型为ArrayListNumberT不能变成父类。
http://www.w-s-a.com/news/927790/

相关文章:

  • 郑东新区建设局网站怎么做万网网站
  • 阿里云上传的网站 服务器路径试用网站开发
  • 做美食原创视频网站网站开发要多钱
  • 怎么做网站作业哪个网站可兼职做logo
  • asp网站搭建教程做网站备案完成之后需要干什么
  • 无锡外贸网站开发兰州网站在哪备案
  • 广州百度网站建设公司天津建设电工证查询网站
  • 网站建设与管理行业发展情况制作网页动态效果
  • wordpress 特色缩略图临沂seo全网营销
  • 隆昌市住房和城乡建设厅网站做网站用什么字体比较好
  • 惠州网站建设设计18款未成年禁用软件ap入口
  • 班级网站 建设目标如何做好网站建设内容的策划书
  • 网站建设与网页设计期末考试清博舆情系统
  • plone网站开发商城网站建设怎么收费
  • 旺旺号查询网站怎么做公司门户网站项目模版
  • 网站免费一站二站四站上海网站怎么备案表
  • 漫画交流网站怎么做开发微信小程序公司
  • 网站建设马鞍山怎么建立局域网网站
  • 开源 网站开发框架哪些网站可以做图片链接
  • 大良制作网站网站设计的能力要求
  • 前端设计除了做网站还能做什么江苏高校品牌专业建设工程网站
  • 做二手房产网站多少钱用户权限配置wordpress
  • 做亚马逊网站需要租办公室吗小型企业网站模板
  • 网站全屏视频怎么做个人公司注册网上申请
  • 如何k掉别人的网站搜索引擎优化与关键词的关系
  • 百度推广 网站吸引力做网站开发的薪酬怎么样
  • js网站开发工具软件营销方案
  • 做网站的天空网云南省建设厅网站怎么进不去
  • 天津网站排名提升网络营销推广策略包括哪些
  • 网站建设与管理 ppt网站打开是别人的