一点Java泛型集合的理解

一点Java泛型集合的理解

ID:37733065

大小:36.00 KB

页数:4页

时间:2019-05-29

一点Java泛型集合的理解_第1页
一点Java泛型集合的理解_第2页
一点Java泛型集合的理解_第3页
一点Java泛型集合的理解_第4页
资源描述:

《一点Java泛型集合的理解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、什么是泛型?泛型(Generictype或者generics)是对Java语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。Map类允许您向一个Map添加任意类的对象,即使最常见的情况是在给定映射(map)中保存某个特定类型(比如String)的对象。因为Map.get()被定义为返回Object,所以一般必须将Map.get()的结果强制类型转换为期望的类型,如下面的代码所示:1.Mapm=newHashMap();2.m.put("key","value");3.Str

2、ingresult=(String)m.get("key");想让程序编译通过,必须将m.get(“key”)强制转换为String类型,因为这里放入了String类型的值,取得的结果也一定是String类型的。如果你往map里放入了不是String类型的值,那么将会报ClassCastException错误。理想情况下,您可能会得出这样一个观点,即m是一个Map,它将String键映射到String值。这可以让您消除代码中的强制类型转换,同时获得一个附加的类型检查层,该检查层可以防止有人将错误类型的键或值保存在集合中。这就是泛型所做的工作。泛型带来的好处类型安全限制了变量定义的类型。消除强

3、制类型转换还是拿刚才的例子说1.Mapm=newHashMap();2.m.put("key","value");3.Stringresult=m.get("key");上面的代码是不是少了强制转换而且代码看着也简洁多了,这就是泛型的好处之一。平时大家写的时候,编辑器会有个黄色的感叹号来提醒你需要使用泛型。泛型的通配符?通配符使用?通配符可以引用其他各种参数化的类型,?通配符定义的变量主要用作引用,可以调用与参数化无关的方法,不能调用与参数化有关的方法。下面看个例子:1.publicclassPeople{2.3.  private

4、Stringname;4.  privateStringjob;5.6.  publicPeople(){7.  }8.9.  publicPeople(String_name,String_job,int_sex){10.      this.name=_name;11.      this.job=_job;12.      this.sex=_sex;13.  }14.15.  publicvoidSayHello(){16.      System.out.println("我是一位"+job+";我的名字叫"+name);17.  }18.19.  publicStringgetN

5、ame(){20.      returnname;21.  }22.23.  publicvoidsetName(Stringname){24.      this.name=name;25.  }26.1.  publicStringgetJob(){2.      returnjob;3.  }4.5.  publicvoidsetJob(Stringjob){6.      this.job=job;7.  }8.9.  publicintgetSex(){10.      returnsex;11.  }12.13.  publicvoidsetSex(intsex){14.   

6、   this.sex=sex;15.  }16.17.  privateintsex;18.19.}1.publicclassSoftwareEngineerextendsPeople{2.3.  publicvoidcoding(){4.      System.out.println("coding……");5.  }6.}1.publicclassCookextendsPeople{1.2.  publicvoidcook(){3.      System.out.println("cooking……");4.  }5.}主方法:1.Listflist=n

7、ewArrayList();2.      flist.add(newPeople());3.      SoftwareEngineersoft=(SoftwareEngineer)flist.get(0);4.      soft.coding();输出结果:coding……注意这里是super,那么flist.add()里面添加newPeople(),也可以添加newSoftwareEn

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。