`
linxizeng
  • 浏览: 103500 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Tiger学习 之 Type-Safe<generic> ...

阅读更多
泛型<Generic>之类型安全<Type-Safe>
1->List(collection,数组...类似)
在构造对像的时候就可以知道该对象操作的是什么样的数据<对象>类型,类型安全且省去烦人的转换类型。
通过Object<E> = new Object<E>();来实现,E占位符


引用


//Tiger之前
List list = new ArrayList();
list.add("String");
list.add(new Integer(111));
list.add(111);//提示错误,不能存放primitiv值,Tiger可以,
//操作的类型没有确定(String和Integer类型可以同时放在List对象),类型不安全

//取值
String str = list.get(0); //提示错误,必须有类型转换,如下写法
String str = (String)list.get(0);


//Tiger
List<String> tiger = new ArrayList<String>();//说明只能用操作String类型
tiger.add("String");
tiger.add(new Integer(111));//改语句编译器提示错误
//操作的类型确定(String和Integer类型可以同时放在List对象),类型安全
 
//取值
String str = tiger.get(0);//无需类型转换



but,generic不支持primitive类型,如以下代码不支持
引用

List<int> list = new ArrayList<int>




2->Map
跟List一样,只是需要两个类型参数,如:
引用

Map<String,String> strings = new Map<String,String>
Map<Long,Object> maps = new Map<Long,Object>



3->Iterator
当你对一个集合(collection)参数化了,那么你也应该参数化Iterator(当然,是用到collection的Iterator时候),否则不是编译失败就是运行失败...且看看

引用


List<String> list = new ArrayList<String>();
list.add("Hello");
list.add("World");

for(Iterator i  = list.iterator();i.hasNext();){
//下面这一句编译不通过,提示类型转换错误,list参数化了,但是Iterator也需要参数化,写成 Iterator<String> i  = list.iterator();
    String str = i.next();

    System.out.println(str);
}



//如果这样,collection不参数化,Iterator参数化,运行抛出异常

引用

List list = new ArrayList();
list.add("Hello");
list.add("World");
list.add(1);

for(Iterator<String> i  = list.iterator();i.hasNext();){
    //输出 1 时,抛出:Exception in thread "main" java.lang.ClassCastException: java.lang.Integer异常
    String str = i.next();

    System.out.println(str);
}
//List list = new ArrayList(); 写成 List<String> list = new ArrayList<String>();

分享到:
评论

相关推荐

    ipmitools-help.docx

    ipmitool [-c|-h|-v|-V] -I lan -H &lt;hostname&gt; [-p &lt;port&gt;] [-U &lt;username&gt;] [-A &lt;authtype&gt;] [-L &lt;privlvl&gt;] [-a|-E|-P|-f &lt;password&gt;] [-o &lt;oemtype&gt;] &lt;command&gt; ``` 在这里,`-I lan` 表示使用IPMI v1.5的LAN...

    oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

    SQL&gt;conn scott/tiger@orcl 2)zip格式包安装配置(只以basic包做为示例) 2.1 下载包:oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.zip 2.2 将包文件解压到指定目录下: #unzip oracle-instantclient...

    acegi-security-tiger-1.0.0-RC2.jar.zip

    这个"acegi-security-tiger-1.0.0-RC2.jar.zip"压缩包包含的是Acegi Security的一个早期版本——1.0.0 Release Candidate 2(RC2),专门针对Tiger(Java SE 5.0)版本的Java开发环境。 Acegi Security的主要功能...

    C#通用数据库访问类 常用6种数据库VS2008

    --&lt;add key="typeName" value="Common.DataAccess.OracleDbOperator"/&gt;--&gt;&lt;!-- Oracle方式 --&gt; &lt;!--&lt;add key="typeName" value="Common.DataAccess.OleDBOperator"/&gt;--&gt;&lt;!-- Access(兼容)方式 --&gt; &lt;/configuration...

    Tiger虎牌微电脑电饭煲JAJ-A55C说明书.pdf

    【Tiger虎牌微电脑电饭煲JAJ-A55C】是一款先进的厨房设备,它采用了微电脑控制技术,能够精确地控制烹饪过程,确保每一顿饭都能煮得美味可口。这款电饭煲遵循一系列中国国家执行标准,如GB4706.1-2005、GB4706.14-...

    oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

    SQL&gt;conn scott/tiger@orcl 2)zip格式包安装配置(只以basic包做为示例) 2.1 下载包:oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.zip 2.2 将包文件解压到指定目录下: #unzip oracle-instantclient...

    tigervnc-server-1.11.0-8.el8.aarch64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    .net 通用数据库访问类(优化版)源码

    --&lt;add key="typeName" value="Common.DataAccess.OracleDbOperator"/&gt;--&gt;&lt;!-- Oracle方式 --&gt; &lt;!--&lt;add key="typeName" value="Common.DataAccess.OleDBOperator"/&gt;--&gt;&lt;!-- Access(兼容)方式 --&gt; &lt;/configuration...

    tiger-x86.tar.bz2种子

    《Mac OS x86系统安装镜像:tiger-x86.tar.bz2解析》 在IT领域,操作系统是计算机的灵魂,而Mac OS作为苹果公司的旗舰操作系统,以其独特的设计美学和强大的性能深受用户喜爱。尤其对于那些拥有PC硬件的用户,通过...

    Struts+Spring+Ibatis整合框架搭建配置文档

    &lt;servlet-name&gt;context&lt;/servlet-name&gt; &lt;servlet-class&gt; org.springframework.web.context.ContextLoaderServlet &lt;/servlet-class&gt; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt; &lt;/servlet&gt; ``` - **`context-param`...

    xwork各版本的jar包

    xwork-1.1.1.jar, xwork-1.1.jar, xwork-1.2.1.jar, xwork-1.2.3.jar, xwork-2.0.0.jar, xwork-2.0.1.jar, xwork-2.0.3.jar, ...xwork-tiger-src-1.2.1.jar, xwork-tiger.jar, xwork.jar, xwork2.jar

    tiger-types-osgi-2.1.44.zip

    【标题】"tiger-types-osgi-2.1.44.zip" 是一个与OSGi相关的软件包,可能包含用于管理OSGi模块化系统中的类型和依赖关系的库或工具。OSGi(Open Service Gateway Initiative)是一种Java应用程序框架,它支持模块化...

    tiger-types-osgi-2.1.93.zip

    【标题】"tiger-types-osgi-2.1.93.zip" 提供的是一个开源项目,主要关注于OSGi(Open Service Gateway Initiative)框架下的类型系统。OSGi是一种Java模块化系统,它允许开发者创建可重用和可组合的模块,以构建更...

    Redis-x64-win-3.2.100+nginx-win

    Redis 和 Nginx 是两种非常重要的开源软件,广泛应用于现代互联网服务中。Redis 是一个高性能的键值存储系统,常用于缓存、消息队列等场景;... 标题 "Redis-x64-win-3.2.100+nginx-win" 暗示了这是一个针对 Windows ...

    cetos7离线安装时间同步ntp需要的rpm包

    autogen-libopts-5.18-5.el7.x86_64.rpm ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm openssl-1.0.2k-19.el7.x86_64.rpm openssl-libs-1.0.2k-19.el7.x86_64.rpm ...

    JSP连接各类数据库大全

    您的第一个字段内容为:&lt;%= rs.getString(1) %&gt; &lt;!-- 输出第一列数据 --&gt; 您的第二个字段内容为:&lt;%= rs.getString(2) %&gt; &lt;!-- 输出第二列数据 --&gt; &lt;% } %&gt; &lt;% out.print("数据库操作成功,恭喜你"); %&gt; &lt;!-- ...

    spring-security-core-tiger-2.0.4.jar

    spring-security-core-tiger-2.0.4.jar

    Tiger虎牌电饭煲JNO-B36C说明书.pdf

    【Tiger虎牌电饭煲JNO-B36C】是一款由知名厨具品牌虎牌推出的厨房设备。这款电饭煲遵循多项中国国内的安全和质量标准,如GB12021.6-2008、GB4706.1-2005、GB4706.19-2008、GB4343.1-2009以及GB17625.1-2012,确保了...

    pyinstaller-4.8-py3-none-win32.whl.rar

    《PyInstaller 4.8:将Python程序转化为可执行文件的利器》 PyInstaller是一款强大的Python应用程序打包工具,它的主要功能是将Python源代码转换为独立的可执行文件,这样在没有安装Python环境的计算机上也可以运行...

    023Cisco.Press.Cisco.Self-Study.Implemen....chm

    023Cisco.Press.Cisco.Self-Study.Implemen....chm

Global site tag (gtag.js) - Google Analytics