下面的程序很容易理解的,加以两个程序的对比,相信很容易理解generis特性。
OldList.java
/**
* @author roson
*
* <chsdate isrocdate="False" islunardate="False" day="11" month="4" year="2005" w:st="on"></chsdate>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
*
* <chsdate isrocdate="False" islunardate="False" day="11" month="4" year="2005" w:st="on"></chsdate>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
*
* <chsdate isrocdate="False" islunardate="False" day="11" month="4" year="2005" w:st="on"></chsdate>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
*
* <chsdate isrocdate="False" islunardate="False" day="11" month="4" year="2005" w:st="on"></chsdate>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中有用到也觉得简单于是就看了下文档了,真的很方便噢。不妨一试!
分享到:
相关推荐
FINAL_-_Crossroad_brochure_Generis-2011-010-0001-01-E
GenerisTekInterviewQs:Generis Tek面试题
如果您通过安装了TAO实例,则很有可能已经安装了oat-sa/extension-tao-outcomerds 。 您可以在“设置”->“扩展管理器”下对此进行验证,该名称将在左侧显示为taoOutcomeRds 。 或者,您可以在/config/generis/...
nymphs, and while of the genus, we are sui generis. The word fairy is drawn from fay (Old French fee), which itself comes from the Latin Fata, the goddess of fate. The fay lived in groups called the ...
在2020年9月至2020年11月之间,英国知识产权局(UKIPO)就人工智能(AI)可能对知识产权(IP)政策的影响以及IP对AI的影响进行了咨询。 这份回应是由Dinusha Mendis教授,Guido Noto La Diega副教授,Felipe Romero-...
该研究所的立场是,在数据中引入专有权,对数据分析中使用的算法进行特殊的法律保护,以及有关当前欧盟法律体系对特殊数据库权利和商业秘密是否适用的问题。单个数据和数据集。 该研究所认为,在数据中引入新的专有...
数据是新的石油。 个人数据的价值已经改变了基于数据分析的营销策略和商业模式。 本文分析了收集用于商业用途的个人数据集是否可以成为知识产权(IP)主题,特别是商业秘密和数据库专有权。 本文的第一部分简要分析...
也出现了通过法律保护来纪念这些成就的想法(以及在某种程度上的需要)。 本文表明,与人工智能版权制度支持者的观点相反,人工智能版权的时机尚未成熟。 版权法的核心要素——即作者身份、原创性和精神权利的概念...