J2SE5.0 实例---泛型_IT中国 ITcnw.Com
来源:百度文库 编辑:16楼社区 时间:2021/01/17 07:22:54
J2SE5.0 实例---泛型
作者:佚名 文章来源:不详 点击数: 105866 更新时间:2005-11-30
泛型
简介
泛型其实并不是一种新的语言元素,C++中早就就有,但是在C++之后的java却没有吸收这个特性,现在Java也有了泛型的特性,大概也和.Net的竞争有关系吧。
首先看泛型的一个应用。
在过去,我们可能经常要写一些类似这样的代码:
List stringList=new LinkedList();
stringList.add("firstString");
stringList.add("secondString");
String str=(String)stringList.iterator().next();
实际上第三行对String的类型转换意义并不大,因为通常我们如果在操作一个List,都是知道这个List里面放的是什么类型对象的,但是我们如果不这样写又通不过语法检查。
利用java的泛型机制,我们可以这么写:
List stringList=new LinkedList();
stringList.add("firstString");
stringList.add("secondString");
String str=stringList.iterator().next();
这样做的好处是在定义容器的时候就指明了容器中的类型,一方面我们不再需要取一个元素时候做强制类型转换,另外一方面如果在这个容器中放入的对象类型不符合要求,那么会在编译时候产生一个错误,而不是在运行时候才抛出一个异常。
另外这样也提高了程序的可读性。
泛型类型的定义
下面是一个简单的使用泛型类的定义:
public class MyGenericClass {
private T value;
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
}
值得注意的一点是,静态变量不能够使用泛型定义,也就是说类似下面的语句是非法的:
public class MyGenericClass {
public static T value;//错误的定义
}
此外,泛型的定义不会被继承,举个例子来说,如果A是B的子类,而C是一个声明了泛型定义的类型的话,C不是C的子类。为了更好的说明,可以看下面的代码,这段代码是错误的。
List strList =new ArrayList();
List
作者:佚名 文章来源:不详 点击数: 105866 更新时间:2005-11-30
泛型
简介
泛型其实并不是一种新的语言元素,C++中早就就有,但是在C++之后的java却没有吸收这个特性,现在Java也有了泛型的特性,大概也和.Net的竞争有关系吧。
首先看泛型的一个应用。
在过去,我们可能经常要写一些类似这样的代码:
List stringList=new LinkedList();
stringList.add("firstString");
stringList.add("secondString");
String str=(String)stringList.iterator().next();
实际上第三行对String的类型转换意义并不大,因为通常我们如果在操作一个List,都是知道这个List里面放的是什么类型对象的,但是我们如果不这样写又通不过语法检查。
利用java的泛型机制,我们可以这么写:
List
stringList.add("firstString");
stringList.add("secondString");
String str=stringList.iterator().next();
这样做的好处是在定义容器的时候就指明了容器中的类型,一方面我们不再需要取一个元素时候做强制类型转换,另外一方面如果在这个容器中放入的对象类型不符合要求,那么会在编译时候产生一个错误,而不是在运行时候才抛出一个异常。
另外这样也提高了程序的可读性。
泛型类型的定义
下面是一个简单的使用泛型类的定义:
public class MyGenericClass
private T value;
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
}
值得注意的一点是,静态变量不能够使用泛型定义,也就是说类似下面的语句是非法的:
public class MyGenericClass
public static T value;//错误的定义
}
此外,泛型的定义不会被继承,举个例子来说,如果A是B的子类,而C是一个声明了泛型定义的类型的话,C不是C的子类。为了更好的说明,可以看下面的代码,这段代码是错误的。
List
List
J2SE5.0 实例---泛型_IT中国 ITcnw.Com
安全实例:僵尸网络模型分析及解决方案_评论分析_IT技术_IT专家网
安全实例:僵尸网络模型分析及解决方案_评论分析_IT技术_IT专家网1
《商业2.0》评最佳非美国Web2.0 中国3家入选_资讯中心_IT人 http://ww...
《商业2.0》评最佳非美国Web2.0 中国3家入选_资讯中心_IT人 http://ww...
谈谈网站设计的10个要点_IT群_南方IT人阵地_ItQun.com
谈谈网站设计的10个要点_IT群_南方IT人阵地_ItQun.com
谈谈网站设计的10个要点_IT群_南方IT人阵地_ItQun.com
中国CIO网站_CIO新闻_IT经理世界:做个不完美CIO
FT中文网 - FTChinese.com - 宽带电视盈利实例
FT中文网 - FTChinese.com - 宽带电视盈利实例
FT中文网 - FTChinese.com - 宽带电视盈利实例
C源码:一个原始套接字的实例 - fanqiang.com
条形码编程实例—编程爱好者网站 programfan.com
条形码编程实例—编程爱好者网站 programfan.com
条形码编程实例—编程爱好者网站 programfan.com
CISCO 交换机IOS升级排障实例 - fanqiang.com
C&C08交换机故障处理实例 - fanqiang.com
元数据(注释)- J2SE5之5
元数据(注释)- J2SE5之5
元数据(注释)- J2SE5之5
赛迪网_IT门户_资讯中心_业界国内微软闪电轰炸中国互联网 MSN进军中国四变数
Google郭去疾:Google眼中的社区和Web2.0_Web服务新闻_互联网_IT专家...
实例讲解VPN网络的搭建和路由设置 [技术指导] IT.com.cn IT世界网