泛型<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>();
分享到:
相关推荐
SQL>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包下载,依赖包
--<add key="typeName" value="Common.DataAccess.OracleDbOperator"/>--><!-- Oracle方式 --> <!--<add key="typeName" value="Common.DataAccess.OleDBOperator"/>--><!-- Access(兼容)方式 --> </configuration...
SQL>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...
--<add key="typeName" value="Common.DataAccess.OracleDbOperator"/>--><!-- Oracle方式 --> <!--<add key="typeName" value="Common.DataAccess.OleDBOperator"/>--><!-- Access(兼容)方式 --> </configuration...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
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
<value>tiger</value> </parameter> <parameter> <name>driverClassName</name> <value>oracle.jdbc.driver.OracleDriver</value> </parameter> <parameter> <name>url</name> <value>jdbc:...
licensing-maven-plugin.zip,派生自http://github.com/idcmp/licensing-maven-pluginlicensing maven plugin
connection = cx_Oracle.connect("scott", "tiger", "localhost/orcl") cursor = connection.cursor() cursor.execute(""" SELECT empno, ename FROM emp WHERE deptno = :did AND sal > :eid""", did =30, eid...
Redis-x64-win-3.2.100+nginx-win
acegi-security-tiger-1.0.7.jar.zip acegi-security-tiger-1.0.7.jar.zip
虎牌厨房设备说明书
spring-security-core-tiger-2.0.4.jar
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 ...
支持pc的mac操作系统,这是安装Mac OS所必须的镜像原文件!
标签:acegi-security-tiger-0.9.0.jar.zip,acegi,security,tiger,0.9.0,jar.zip包下载,依赖包
标签:acegi-security-tiger-1.0.7.jar.zip,acegi,security,tiger,1.0.7,jar.zip包下载,依赖包
标签:acegi-security-tiger-1.0.4.jar.zip,acegi,security,tiger,1.0.4,jar.zip包下载,依赖包
023Cisco.Press.Cisco.Self-Study.Implemen....chm