快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

J2se5.0 generis新特性







 


下面的程序很轻易理解的,加以两个程序的对比,相信很轻易理解generis特性。



OldList.java




 


/**



 * @author roson



 *



 * 2005-4-11



 */



package collection;




 


import java.util.*;




 


public class OldList {




 


    private void testList()



    {



        List list=new ArrayList();



        list.add(new String("HelloWorld!"));



        list.add(new String("goodbye!"));



        list.add(new Integer(95));



        printList(list);



    }



   



    private void printList(List list)



    {



        Iterator i=list.iterator();



        while(i.hasNext())



        {



            String item=(String)i.next();



            System.out.println("Item:"+item);



        }



    }



   



    public static void main(String[] args) {



        OldList old=new OldList();



        old.testList();



    }



}




 


能通过编译,但是当执行到第三个打印时将报错。




 



 



 



 


NewList.java




 


/**



 * @author roson



 *



 * 2005-4-11



 */



package collection;




 


import java.util.*;




 


public class NewList {




 


    private void testNew()



    {



        List<String> list=new ArrayList<String>();



        list.add(new String("HelloWorld!"));



        list.add(new String("Goodbye!"));



        //list.add(new Integer(95));   这里不能增加整形



        printList(list);



    }



   



    private void printList(List list)



    {



        Iterator<String> i=list.iterator();



        while(i.hasNext())



        {



            String item=i.next();



            System.out.println("Item:"+item);



        }



    }



    public static void main(String[] args) {



        NewList list=new NewList();



        list.testNew();



    }



}




 



 


在这里假如加入注释的那句,将不能通过编译,不至于在运行时报错。有利于提前检查出错误。




 



 



 


OldLoop.java




 


/**



 * @author roson



 *



 * 2005-4-11



 */



package collection;




 


import java.util.*;




 


public class OldLoop {




 


    public static void main(String[] args) {



        List list=new ArrayList();



        list.add(new String("HelloWorld!"));



        list.add(new String("goodbye!"));



        for(Iterator i=list.iterator();i.hasNext();)



        {



            String item=(String)i.next();



            System.out.println("Item:"+item);



        }



    }



}




 



 


NewLoop.java



/**



 * @author roson



 *



 * 2005-4-11



 */



package collection;




 


import java.util.*;




 


public class NewLoop {




 


    public static void main(String[] args) {



        List<String> list=new ArrayList<String>();



        list.add(new String("HelloWorld!"));



        list.add(new String("Goodbye!"));



        for(String str:list)      //比以前简朴多了吧



        {



            System.out.println("Item:"+str);



        }



    }



}



从以上两个程序可以轻易看出,第二个简朴多了 : )




 


讨论:



这里只以list为例,当然还有其它啦,比如 HashMaps,LinkLists 等Collection 。



J2se5.0还有很多地方改善,这里就不多说了。不过可以参考英文文档 j2se5 Nutshell 和 j2se5 .一开始还觉得generis不好,但是看到jbss中有用到也觉得简朴于是就看了下文档了,真的很方便噢。不妨一试!








返回类别: 教程
上一教程: Mini Java编译器(五)
下一教程: Jsdk5.0中新增枚举enum类型使用例解

您可以阅读与"J2se5.0 generis新特性"相关的教程:
· Java1.5语言新特性简朴总结
· J2SE 5.0的新特性---Autoboxing
· JDBC3.0有什么新特性
· Java1.5语言新特性简朴总结
· J2SE新特性---循环语句的增强
    微笑服务 优质保证 索取样品