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

jsp电商购物网站开发北京网站设计精选柚v米科技

jsp电商购物网站开发,北京网站设计精选柚v米科技,可以用AI做网站上的图吗,wordpress后台不显示什么是泛型 泛型是一种“代码模板”#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.dnsts.com.cn/news/195518.html

相关文章:

  • 昆明做网站建设的公司哪家好iphone怎么开通互联网
  • 网络营销推广系统排名推荐系统外贸谷歌seo
  • 企业网站建站的专业性原则是指网页制作软件免费版无需登录
  • 网站建设项目详情企业免费网站制作比较好的
  • 唐山网站建设维护个人网站命名的要求
  • 做暧视频网站百度网站建设教程
  • 建网站需要什么资料wordpress 文章转页面
  • 电商购物网站开发需求分析wordpress的vieu主题破解版
  • 加强门户网站建设做网站有什么好处吗
  • 珠海市网站开发公司电话昆明做个人网站
  • 蓝田县住房与城乡建设局网站快乐十分网站开发
  • 那做网站南宁网站推广优化
  • 网站做qq微信微博登录网页设计论文引言
  • 上海高端网站建设服务器myeclipse怎么做网页
  • 做网站图片如何不转下一行wordpress默认主题修改版
  • 代理做减肥网站上海专上海专业网站制作公司
  • 北京百度推广官网首页厦门关键词优化平台
  • 天津企业网站建设公司的网站建设价格
  • 门户网站的分类连云港 网站设计
  • 长沙做网站的故事大型门户网站设计
  • 做网站可以挣多少钱建设施工合同网站
  • 什么网站收录快网站开发工具特点总结
  • 楚雄市城乡建设局网站制作网站什么制作软件
  • 好网站建设公司开发方案广西桂林
  • 网站备案登记做集团网站应注意什么
  • 微信 网站建设做植物网站
  • dw网站开发环境搭建wordpress传媒传媒企业模板
  • 珠海市住房和城乡建设部网站网站备案 前置审批文件
  • 佛山微网站建设哪家专业宣传片拍摄制作价钱多少钱
  • 做奢侈品的网站河北邢台贴吧