JAVA之旅(二十一)

JAVA之旅(二十一)

ID:37859123

大小:80.00 KB

页数:9页

时间:2019-06-01

JAVA之旅(二十一)_第1页
JAVA之旅(二十一)_第2页
JAVA之旅(二十一)_第3页
JAVA之旅(二十一)_第4页
JAVA之旅(二十一)_第5页
资源描述:

《JAVA之旅(二十一)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、JAVA之旅(二十一)一.泛型的概述什么是泛型,我们可以用一个很典型的例子来说明packagecom.lgl.hellojava;importjava.util.ArrayList;importjava.util.Iterator;//公共的类类名publicclassHelloJJAVA{publicstaticvoidmain(String[]args){/***泛型*/ArrayListal=newArrayList();al.add("hello1");al.add("hello02");al.

2、add("hello0300");al.add("hello084");//添加intal.add(5);Iteratoriterator=al.iterator();while(iterator.hasNext()){Strings=(String)iterator.next();//打印长度sop(s.length());}}//输出publicstaticvoidsop(Objectobj){System.out.println(obj);}}这里,我们用一个arraylist存储的数据有Stri

3、ng也有int,输出的结果不会发现,他报的就是类型的异常,我们要怎么去解决?这里就牵扯出泛型来了泛型:JDK1.5版本之后出现的新特性,用于解决安全问题,是一个安全机制;我们要怎么使用?ArrayListal=newArrayList();我定义了一个容器,容器的参数是String类型,规范了数据类型,就不能存其他的数据了,安全性提高了!好处:讲运行时期出现的问题转移到了编译时期,方便程序员解决问题,让运行时期问题减少,安全二.泛型的使用泛型的格式:通过<>来定义要操作的

4、引用数据类型,在使用JAVA提供的对象时,什么时候写泛型呢,通常在集合框架中很常见,只要见到<>就是定义泛型!其实<>就是用来接收类型的,当使用集合时,将集合中要存储的数据类型,作为参数,传递到<>一样,我们来个小例子packagecom.lgl.hellojava;importjava.util.Comparator;importjava.util.Iterator;importjava.util.TreeSet;//公共的类类名publicclassHelloJJAVA{publicstaticvo

5、idmain(String[]args){TreeSettr=newTreeSet(newLenComp());tr.add("hello01");tr.add("hello012");tr.add("hello013");tr.add("hello014");Iteratoriterator=tr.iterator();while(iterator.hasNext()){Stringstring=iterator.next();sop(string);}

6、}//输出publicstaticvoidsop(Objectobj){System.out.println(obj);}}//比较器classLenCompimplementsComparator{@Overridepublicintcompare(Stringo1,Stringo2){Strings1=o1;intnum=newInteger(o1.length()).compareTo(newInteger(o2.length()));if(num==0){returno1.com

7、pareTo(o2);}returnnum;}}你可以仔细的看看里面是怎么用泛型的,就是一些小技巧三.泛型类这是我们优化代码比较常见的一种方式,我们可以看这块代码packagecom.lgl.hellojava;//公共的类类名publicclassHelloJJAVA{publicstaticvoidmain(String[]args){Toolt=newTool();t.setW(newWorker());t.getW();}//输出publicstaticvoidsop(Objectobj){Sy

8、stem.out.println(obj);}}//操作工人的工具类classTool{privateWorkerw;publicWorkergetW(){returnw;}publicvoidsetW(Workerw){this.w=w;}}classWorker{}这里,有一个工人的类,我们定义一个工具类去操作,对吧,这个逻辑就是这么的简单,但是你回发现,如果我在定义一个学生的类,就又得需要一个学生的工具类了,我们为什么不去合并这个工具

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

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

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