探索Eclipse V3.1的新特性 - 编程入门网
mo
{
public static void main(String[] args)
{
Hashtable h = new Hashtable();
h.put(new Integer(0), "Horse Feathers");
String s = (String) h.get(new Integer(0));
System.out.println(s);
}
}
像这样的代码如果反复编写会很费力(肯定可以证明),而且突出显示的代 码行的复杂性则掩饰了它实际上的简单目的。更糟的是,编译器捕捉不到不匹配 的类型——例如用 h.get() 检索出对象之后如果转换到错误的类型。实际上, 向下转型(downcasting)(沿着对象继承树向下转型的过程,比如从 Object 到 String)是 Java 程序的运行时 bug 的一大源头。 当然,还可以用固定类型实现自己的哈希表。例如,MyStringHashTable 可 能包装了通用的 Hashtable,而且只通过 Integer 索引添加了 String 元素。 在这种情况下,MyStringHashTable.put() 和 MyStringHashTable.get() 应当 适当地重新做定义,只接受类型正确的参数,并返回 String。 虽然这样的 MyStringHashTable 是类型安全的,但它就不再灵活了。要把新 形式的数据保存到哈希表中,就必须在全新的独立对象中重新创建大多数 MyStringHashTable 代码。 进入泛型 理想情况下,像 Hashtable 类这样的东西,应当既灵活 又 严格(类型安全 ):例如,键和值的类型应当是在初始化的时候参数化,避免类型转换的需要, 允许编译器捕获类型不匹配。而且,实际上,参数化类型也是 Java V1.5 的新 泛型的基础。 探索Eclipse V3.1的新特性(5)时间:2010-12-02 IBM Martin Streicher创建和使用泛型 在这一节,使用 Eclipse 及其对泛型的支持创建和优化示例应用程序。 如果还没启动 Eclipse,请启动它,进入工作台创建新项目。要创建新项目 ,请选择 File > New > Project...。指定 Generics Example 作为项目 名称,并从 JDI Compliance 区中选择 5.0(单击下拉菜单可以找到)。最后, 单击 Finish。 在新项目中创建 Java 类。请选择 File > New > Class,输入 demo 作为包名称,输入 Demo 作为类名。选中复选框,生成 public static void main(String[] args) 方法框架。现在,单击 Finish。 在 Package Explorer 面板中单击新的 Demo 类,然后把清单 3 的代码复制 并粘贴到 Demo.java 面板中。 清单 3. 简单的泛型类
按 Ctrl+S 组合键保存代码,并选择 Run > Run...。出现 Run 对话框时 ,单击右下角的 Run 按钮。输出面板中应产生以下输出: 将鼠标指针悬停在 gc.get() 每个调用上。若您悬停在 storeString 中的第 一次使用上,会弹出一个小提示信息,指示 gc.get() 返回一个 Strin |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |