`
Andyan_java
  • 浏览: 14757 次
  • 性别: 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的介绍中,我们可以得知作者是计算机科学界...

    C#泛型编程指南:类型安全与代码复用的平衡艺术.pdf

    文档全面覆盖基础语法、面向对象特性、泛型、LINQ等核心内容,让你轻松掌握编程精髓。它能跨平台开发,无论是Windows应用、Web项目,还是移动端、游戏开发都不在话下。而且C#深度集成于.NET生态,拥有丰富的类库和...

    C#集合与泛型终极指南:List和Dictionary的高效用法.pdf

    文档全面覆盖基础语法、面向对象特性、泛型、LINQ等核心内容,让你轻松掌握编程精髓。它能跨平台开发,无论是Windows应用、Web项目,还是移动端、游戏开发都不在话下。而且C#深度集成于.NET生态,拥有丰富的类库和...

    泛型编程深度解析:为什么你的C#代码不够灵活?.pdf

    文档全面覆盖基础语法、面向对象特性、泛型、LINQ等核心内容,让你轻松掌握编程精髓。它能跨平台开发,无论是Windows应用、Web项目,还是移动端、游戏开发都不在话下。而且C#深度集成于.NET生态,拥有丰富的类库和...

    C#集合与泛型深度指南:List和Dictionary的10种高效用法.pdf

    文档全面覆盖基础语法、面向对象特性、泛型、LINQ等核心内容,让你轻松掌握编程精髓。它能跨平台开发,无论是Windows应用、Web项目,还是移动端、游戏开发都不在话下。而且C#深度集成于.NET生态,拥有丰富的类库和...

    C#集合与泛型深度解析:List、Dictionary的20种高级用法.pdf

    文档全面覆盖基础语法、面向对象特性、泛型、LINQ等核心内容,让你轻松掌握编程精髓。它能跨平台开发,无论是Windows应用、Web项目,还是移动端、游戏开发都不在话下。而且C#深度集成于.NET生态,拥有丰富的类库和...

    从懵逼到精通:C#泛型与集合框架的降维打击教程.pdf

    文档全面覆盖基础语法、面向对象特性、泛型、LINQ等核心内容,让你轻松掌握编程精髓。它能跨平台开发,无论是Windows应用、Web项目,还是移动端、游戏开发都不在话下。而且C#深度集成于.NET生态,拥有丰富的类库和...

    C#泛型编程进阶:从基础到自定义约束的8个关键知识点.pdf

    文档全面覆盖基础语法、面向对象特性、泛型、LINQ等核心内容,让你轻松掌握编程精髓。它能跨平台开发,无论是Windows应用、Web项目,还是移动端、游戏开发都不在话下。而且C#深度集成于.NET生态,拥有丰富的类库和...

    C#泛型与集合类深度解析:List小于T大于和Dictionary的进阶技巧.pdf

    文档全面覆盖基础语法、面向对象特性、泛型、LINQ等核心内容,让你轻松掌握编程精髓。它能跨平台开发,无论是Windows应用、Web项目,还是移动端、游戏开发都不在话下。而且C#深度集成于.NET生态,拥有丰富的类库和...

    开源项目-sirkon-snippets.zip

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

    开源项目-golang-go.zip

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

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

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

    C#机器学习初体验:ML.NET图像识别项目实战.pdf

    文档全面覆盖基础语法、面向对象特性、泛型、LINQ等核心内容,让你轻松掌握编程精髓。它能跨平台开发,无论是Windows应用、Web项目,还是移动端、游戏开发都不在话下。而且C#深度集成于.NET生态,拥有丰富的类库和...

    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关键词,使得编写异步代码变得更加简单,有助于改善应用程序的...

Global site tag (gtag.js) - Google Analytics