J2SE5.0 实例---泛型_IT中国 ITcnw.Com
来源:百度文库 编辑:神马文学网 时间:2024/04/30 04:24:29
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...
中国CIO网站_CIO新闻_IT经理世界:做个不完美CIO
AJAX实例入门-电脑教程|QQread.com
网站设计的10个要点_IT群_南方IT人阵地_ItQun.com
高层批女排是"网络一代":自顾上网无拼搏精神_IT与体育_cnBeta.COM
FT中文网 - FTChinese.com - 宽带电视盈利实例
CISCO 交换机IOS升级排障实例 - fanqiang.com
C&C08交换机故障处理实例 - fanqiang.com
VLAN设置实例全程解读 home.0732go.com
VLAN设置实例全程解读HOME.0732GO.COM
Excel应用实例--轻松套打带照片的准考证 - qqread.com
C#内存流的使用实例探讨 - 51CTO.COM
摄影构图实例0
Google郭去疾:Google眼中的社区和Web2.0_Web服务新闻_互联网_IT专家...
一句话笑话_IT在线
笑话_IT在线
一句话笑话_IT在线
一句话笑话_IT在线
奇门牢狱预测实例0
FLASH8.0高级实例视频教程
行业人士爆料!关于杀软那些事儿!_IT业界_中华网论坛--网友影响中国--全国最大社区媒体