网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > JAVA > 新手入门 > JDK > JDK5.0的11个主要新特征  

JDK5.0的11个主要新特征

2007-07-21  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

1           泛型(Generic)

网管联盟bitsCN_com

1.1          说明

网管bitscn_com

增强了java的类型安全,可以在编译期间对容器内的对象进行类型检查,在运行期不必进行类型的转换。而在j2se5之前必须在运行期动态进行容器内对象的检查及转换 网管网www.bitscn.com

减少含糊的容器,可以定义什么类型的数据放入容器

网管网www_bitscn_com


ArrayList<Integer> listOfIntegers; // <TYPE_NAME> is new to the syntax 网管u家u.bitscn@com

Integer integerObject;

中国网管联盟bitsCN.com

listOfIntegers = new ArrayList<Integer>(); // <TYPE_NAME> is new to the syntax 网管网www.bitscn.com

listOfIntegers.add(new Integer(10)); // 只能是Integer类型

网管u家u.bitsCN.com

integerObject = listOfIntegers.get(0); // 取出对象不需要转换  网管联盟bitsCN_com

网管论坛bbs_bitsCN_com

网管论坛bbs_bitsCN_com

1.2          用法

网管论坛bbs_bitsCN_com

声明及实例化泛型类:

网管u家u.bitsCN.com

HashMap<String,Float> hm = new HashMap<String,Float>();

网管联盟bitsCN_com

//不能使用原始类型 网管下载dl.bitscn.com

GenList<int> nList = new GenList<int>();  //编译错误  中国网管联盟bitsCN.com

网管u家u.bitsCN.com

网管bitscn_com

J2SE 5.0目前不支持原始类型作为类型参数(type parameter)

网管网www_bitscn_com

定义泛型接口:

网管论坛bbs_bitsCN_com

public interface GenInterface<T> { 网管网www.bitscn.com

    void func(T t);

网管u家u.bitsCN.com

网管论坛bbs_bitsCN_com

网管网www.bitscn.com

网管u家u.bitsCN.com

定义泛型类:

网管联盟bitsCN@com

public class ArrayList<ItemType> { ... }

网管网www.bitscn.com

public class GenMap<T, V> { ... } 网管网www.bitscn.com

例1:

网管u家u.bitscn@com

public class MyList<Element> extends LinkedList<Element> 网管网www_bitscn_com

{

网管bitscn_com

       public void swap(int i, int j)

中国网管联盟bitsCN.com

       { 网管bitscn_com

              Element temp = this.get(i);

网管u家u.bitscn@com

              this.set(i, this.get(j));

网管下载dl.bitscn.com

              this.set(j, temp); 网管u家u.bitsCN.com

       }

中国网管联盟bitsCN.com

       网管网www.bitscn.com

       public static void main(String[] args)

网管网www.bitscn.com

       {

中国网管论坛bbs.bitsCN.com

              MyList<String> list = new MyList<String>(); 网管u家u.bitsCN.com

              list.add("hi"); 中国网管论坛bbs.bitsCN.com

              list.add("andy");

网管u家u.bitsCN.com

              System.out.println(list.get(0) + " " + list.get(1));

网管bitscn_com

              list.swap(0,1);

网管u家u.bitsCN.com

              System.out.println(list.get(0) + " " + list.get(1));

网管u家u.bitscn@com

       } 中国网管论坛bbs.bitsCN.com

网管u家u.bitscn@com

网管论坛bbs_bitsCN_com

网管网www.bitscn.com

例2: 中国网管联盟bitsCN.com

public class GenList <T>{

网管u家u.bitscn@com

       private T[] elements; 网管网www.bitscn.com

       private int size = 0; 网管网www.bitscn.com

       private int length = 0;

网管联盟bitsCN@com

  网管网www.bitscn.com

       public GenList(int size) { 网管联盟bitsCN@com

              elements = (T[])new Object[size];

网管网www.bitscn.com

              this.size = size;

网管联盟bitsCN_com

       } 网管下载dl.bitscn.com

 

网管联盟bitsCN_com

       public T get(int i) {

中国网管联盟bitsCN.com

              if (i < length) { 网管论坛bbs_bitsCN_com

                     return elements[i];

网管下载dl.bitscn.com

              } 网管u家u.bitscn@com

              return null; 网管u家u.bitsCN.com

       }

网管bitscn_com

       网管bitscn_com

       public void add(T e) { 网管网www.bitscn.com

              if (length < size - 1)

网管下载dl.bitscn.com

                     elements[length++] = e;

中国网管联盟bitsCN.com

       } 网管联盟bitsCN_com

中国网管论坛bbs.bitsCN.com

网管u家u.bitsCN.com

网管下载dl.bitscn.com

泛型方法:

网管下载dl.bitscn.com

public class TestGenerics{

中国网管论坛bbs.bitsCN.com

       public <T> String getString(T obj) { //实现了一个泛型方法 中国网管论坛bbs.bitsCN.com

              return obj.toString();

中国网管论坛bbs.bitsCN.com

       } 网管网www.bitscn.com

       网管联盟bitsCN_com

       public static void main(String [] args){ 网管u家u.bitscn@com

              TestGenerics t = new TestGenerics(); 中国网管联盟bitsCN.com

              String s = "Hello";

网管联盟bitsCN_com

              Integer i = 100;

网管网www.bitscn.com

              System.out.println(t.getString(s)); 网管bitscn_com

              System.out.println(t.getString(i));

网管网www.bitscn.com

              } 中国网管联盟bitsCN.com

网管下载dl.bitscn.com

网管网www_bitscn_com

中国网管联盟bitsCN.com

  网管网www.bitscn.com

网管bitscn_com


TAGs
 上一篇:Java Fun and Games: Java Grab包的技术提示   下一篇:JRE与JDK在启动应用服务器中的作用
JDK5.0的11个主要新特征 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: