下面的程序很容易理解的,加以两个程序的对比,相信很容易理解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
15. **C#新特性**:学习C#版本的最新特性,如async streams、nullable reference types、pattern matching等。 在准备Generis Tek的面试时,深入理解并能灵活运用这些知识点将大大提高你的竞争力。同时,实践是检验...
- **法律保护**:指为保护数据库免受非法复制、使用或篡改而设立的法律法规。 #### 作者及出版信息 - **作者**:Estelle Derclaye,英国诺丁汉大学法律讲师。 - **出版社**:Edward Elgar Publishing Limited,位于...
如果您通过安装了TAO实例,则很有可能已经安装了oat-sa/extension-tao-outcomerds 。 您可以在“设置”->“扩展管理器”下对此进行验证,该名称将在左侧显示为taoOutcomeRds 。 或者,您可以在/config/generis/...
导入方法通常是将.ABR文件复制到Photoshop的预设目录下,或者通过软件内的"编辑"菜单 -> "预设" -> "预设管理器"来手动载入。 在提供的压缩包文件名称列表中,我们可以看到以下几种炫彩笔刷: 1. 06_cs3_Sui_...
这种方法相比于仅通过局部结构变形来推断乘员伤害程度,更为直接和精确,为安全带、安全气囊等乘员约束保护装置的优化设计提供了直接依据。 论文的技术路线采用了UG、IDEAS、SAFEDITOR、GENERIS等软件进行乘员约束...
3. 引入新的保护机制:如考虑采用“数据库制作人权利”(Sui Generis Database Right),这是一种专为数据库设计的特殊权利,旨在保护数据库的投资,即使其中的数据本身不受版权保护。 4. 国际合作与协调:积极参与...
在2020年9月至2020年11月之间,英国知识产权局(UKIPO)就人工智能(AI)可能对知识产权(IP)政策的影响以及IP对AI的影响进行了咨询。 这份回应是由Dinusha Mendis教授,Guido Noto La Diega副教授,Felipe Romero-...
该研究所的立场是,在数据中引入专有权,对数据分析中使用的算法进行特殊的法律保护,以及有关当前欧盟法律体系对特殊数据库权利和商业秘密是否适用的问题。单个数据和数据集。 该研究所认为,在数据中引入新的专有...
数据是新的石油。 个人数据的价值已经改变了基于数据分析的营销策略和商业模式。 本文分析了收集用于商业用途的个人数据集是否可以成为知识产权(IP)主题,特别是商业秘密和数据库专有权。 本文的第一部分简要分析...