`
Andyan_java
  • 浏览: 14673 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

泛型初想

 
阅读更多
java中的泛型提供了在编译时期的类型检查,这让java语言更具健壮.
在泛型没有出来之前,也就是JDK1.5之前,往往使用的是Object这个根类来进行接口的声明.然后进行具体的类型转化.
更多的形式如下:
foo.setFoo(new Integer(5));
Integer i =(Integer)foo.getFoo();

而泛型的出现则省去了这一环节.典型的就是以一个参数如T 进行类型的申明.在实例与具体操作时进行类型的指定.如Foo<T>

当我们申明了:
Foo<Integer>  foo1 = null;
Foo<Boolean> foo2 = null;
时,就不能
foo1 = new Foo<String>("");
foo2 = new Foo<String>("");
也就是foo1,foo2只能代表Integer和Boolean的Foo,因为我们已经知道了它的具体所属类型.
如果我们不知道它具体为何类型可以申明为
Foo<?> foo = null
这样我们就可以对foo任意实例了:
foo = new Foo<String>("");
foo = new Foo<Integer>(5);//autoboxing
当然我们也可以对这个未知类型进行限定:
Foo<? extends List> foo;
这样foo就只有匹配List的子类了.
同样也可以时行向上限定
Foo<? super ArrayList> foo

分享到:
评论

相关推荐

    C#泛型集合与非泛型集合

    这些集合在设计之初并未考虑到类型安全性的问题,因此它们只能存储 `object` 类型的对象,这导致了以下问题: 1. **性能问题**:由于非泛型集合存储的是 `object` 类型,这意味着当向集合中添加基本类型(如 `int`...

    C++泛型编程:源起、实现与意义 免积分

    C++作为一种强大的编程语言,在设计之初并未直接支持这种通用编程方式,而是通过后来引入的模板机制实现了这一目标。 #### 什么是泛型编程? 泛型编程是一种编程范式,旨在编写可应用于多种数据类型的代码。它允许...

    C++设计新思维:泛型编程与设计模式之应用(PDF)

    总之,《C++设计新思维:泛型编程与设计模式之应用》是一本将理论与实践完美结合的作品,它不仅适合那些初入编程领域的新人,也适用于那些希望提高自身技能的资深开发者。通过这本书,读者将能够更好地利用C++的泛型...

    JDK 1.5的泛型實現(Generics in JDK 1.5)

    JDK 1.5的泛型實現(Generics in JDK 1.5) 1 侯捷觀點 JDK 1.5的泛型實現 — Generics in JDK 1.5 — 北京《程序員》 2004/09 台北《Run!PC》2004/09 作者簡介:侯捷,資訊教育、專欄執筆、大學教師...

    分布式系统原理与泛型(第2版)英文版

    标题《Distributed Systems Principles and Paradigms》(分布式系统原理与泛型)第二版英文版表明,本书是一本专注于分布式系统理论与设计的教材。从Andrew S. Tanenbaum的介绍中,我们可以得知作者是计算机科学界...

    开源项目-sirkon-snippets.zip

    Go语言在设计之初并未包含泛型,这在一定程度上限制了代码的通用性和模块化。然而,随着Go语言的发展和社区的需求,泛型成为了讨论的焦点。Go 2.0泛型的目标是引入一种方式,使得开发者能够定义和使用不特定于某一...

    开源项目-golang-go.zip

    开源项目-golang-go.zip是一个与Go编程语言相关的...对于想要了解Go语言未来发展方向,或者对泛型编程感兴趣的开发者来说,这是一个宝贵的学习资源。同时,参与这样的开源项目也是提升个人技能和对Go语言理解的好机会。

    Java初中级程序员面试宝典共36页.pdf.zip

    5. **泛型**:介绍泛型的用途,理解类型擦除,并掌握泛型类、泛型方法和通配符的使用。 6. **设计模式**:讲解常见的设计模式,如单例、工厂、观察者、装饰者等,以及它们在实际开发中的应用。 实际项目经验部分...

    java初中级教程

    - 提高代码的类型安全性,减少类型转换,泛型类和泛型方法是其核心。 9. **JDBC(Java Database Connectivity)** - Java连接数据库的标准API,用于执行SQL语句,处理结果集,管理数据库连接。 10. **Java标准库...

    从初面到终面:JAVA面试系列之java基础面试题及答案

    53. **Java中的泛型**:泛型用于在编译时检查类型安全,提供更好的类型提示。 54. **泛型好处**:类型安全,避免强制类型转换,提高代码可读性。 55. **限定通配符与非限定通配符**:限定通配符如"? extends T...

    C#初學指引-繁體

    10. **泛型**:泛型允许创建类型安全的集合和方法,可以在运行时指定数据类型,提高了代码的灵活性和效率。 11. **异步编程**:C#引入了async/await关键词,使得编写异步代码变得更加简单,有助于改善应用程序的...

    华为内部C++中级培训教材

    最著名的泛型库是STL(标准模板库),它利用泛型编程提供了一系列的数据结构和算法,可以在不同的数据类型上使用。 7. C++模式设计基本思想:模式(Design Patterns)是指在特定情境下,解决某一类问题的典型经验。...

    Java编程百例初學者下載

    8. **泛型**:泛型提供了一种在编译时检查类型安全的方法,避免了类型转换的麻烦,实例会展示如何在类、接口和方法中使用泛型。 9. **反射API**:Java反射机制允许在运行时动态地获取类的信息并操作类的对象,实例...

    C++初中级培训ppt

    **C++初中级培训PPT概述** C++是一种强大的、通用的编程语言,它起源于C语言,并在其中加入了面向对象编程(OOP)的概念。C++被广泛应用于系统软件、应用软件、游戏开发、设备驱动等众多领域,是许多专业软件工程师...

    c++初高级教材

    "c++初高级教材"这个压缩包文件包含了适合初学者和进阶者学习的资源,旨在帮助无论是零基础还是有一定经验的学习者提升C++技能。 1. **C++基础知识**:初学者首先要了解C++的基础语法,包括变量声明、数据类型(如...

    C++ templates

    中文版 c++ templates 译序 《C++ Templates全览》译序 ...感谢姜宏先生,在我最繁忙之际,您的鼎力相助使得本书初译工作得以如期完成。感谢内人朱艳,您给予的理解、支持和无微不至的照料永远是我前进的动力。

    Java私塾教材资料大全(包括Java初、中、高级全套)

    总之,这个Java私塾教材资料大全是一套全面且深入的Java学习资源,无论你是初入Java殿堂的新手,还是寻求技术进阶的开发者,都能从中受益匪浅。通过系统地学习和实践,你将能够掌握Java编程的核心技能,为未来的职业...

    .net 面试题(最近刚更新2009/7/26)

    5. 泛型:理解泛型的概念,以及泛型类、泛型接口、泛型方法的使用。 6. Lambda表达式与LINQ:学习使用Lambda表达式简化代码,并掌握查询表达式(LINQ)进行数据操作。 二、.NET框架 1. 应用程序域(AppDomain):...

Global site tag (gtag.js) - Google Analytics