0 0

有关泛型的疑问0

最近在看Struts2的源码,但由于基础不够好(只有两年Java经验),看起来很吃力,源码中的代码组织与设计,以及一些编程思想对我来说很新颖,而且有不少知识是我没有接触过的,比如下面这种泛型:

 

	interface InjectorFactory<M extends Member & AnnotatedElement> {

		Injector create( ContainerImpl container, M member, String name )
				throws MissingDependencyException;
	}

 泛型我了解一些,但还比较浅,像上面这种用法我还是第一次见,而且也难以搜索到相关的博客,一般介绍泛型的博客也都流于表面。所以想在这里请教一下各位,这倒底是什么道理?那个&操作符是什么意思?谢谢了...

2012年9月03日 17:10

4个答案 按时间排序 按投票排序

0 1

采纳的答案

错了,刚看了下是
下面的方法中将要用到一个符号M来表示泛型,而这个泛型表示的具体类型,必须同时实现 Member 和 AnnotatedElement接口

2012年9月03日 17:30
1 0

泛型的作用就是限制存入集合中元素的类型
至于这个
InjectorFactory<M extends Member & AnnotatedElement>
那就是本类接受 继承 Member的类,或者这个类是AnnotatedElement类型的

2012年9月03日 17:13
0 0

建议: 百度搜索“黑马训练营” 然后去下载视频 “java基础增强” 中有泛型的详细讲解  张孝祥讲的很好

2012年9月04日 10:04
0 0


刚刚解答 http://www.iteye.com/problems/87940 直接给你了 不明白的再回复问

泛型的目的:参数化类型,并且保证编写代码的正确性和安全性;

1、参数化类型
如我有一个数据结果List,这是一个有序列表,如果没有泛型,我可能这么来实现:
   IntList、DoubleList  --->每个类型都需要一个
   或者
   ObjectList --->Object是所有类型的超类,可能造成数据混乱,引起代码错误;

   我们知道 List的算法骨架都是一样的,只是操作的数据不一样(如Int、Long……),因此呢,我们把这个数据类型参数化:
   List<T>   ---->T表示泛型形参,类似于方法的形参

   我们使用时可以通过 List<Integer>  Integer就是实参;

   这样的好处我们只有一个List数据结构,仅仅是数据不同。

2、编码的安全性和正确性
    没有泛型时
       List 可以存放任意的Object类型,既Integer、Long等都行,我们可能放入不正确的数据,造成程序异常;

    有了泛型之后,我们在写代码时
      List<Integer> 只能放Integer类型

3、你的这个List<Object> 和List 其实没什么区别,建议改成 List<UserVo> 这样就只能往里放UserVo 这个类型的数据。

2012年9月03日 17:11

相关推荐

    java反射、泛型、注解、代理精讲

    本课程是《 java就业班》系统课程的第24章,全套课程精细讲解,该课程超过其他机构30%的课程量,经过我们全套课程系统学习的同学,可轻松从事Java高级工程师或系统架构师岗位,课程提供全套代码笔记其它相关素材及...

    More.Exceptional.C.:40个新的工程难题、编程疑问及解决方法

    随着对泛型程序设计和C++标准库有关话题的深入研究,我们还会碰到更多的问题。这本书就是一个答疑的地方。

    (C++_STL编程轻松入门基础

    对于初学者而言,STL可能是一个充满疑问的概念,特别是关于“STL是什么?”的问题。在深入探讨之前,理解STL的背景和理念至关重要。 #### 2. STL的本质 STL是一种基于泛型编程(generic programming)的设计思想,...

    thinking in Java, 4th Edition 完整清晰版 [Java 核心思想]

    - Jim Pleger(Loudoun County政府)称赞本书是准备Sun认证Java程序员考试的绝佳资源,并且是解决Java疑问时首先查阅的书籍。 - Anatoly Vorobey(以色列理工学院)认为本书相比其他Java书籍更为成熟、一致且精确...

    c++大学生基础教程(随书光盘)

    同时,相关网站链接可能提供在线资源、更新信息、论坛讨论等,以便学生获得额外的学习支持和解答疑问。 总之,《C++大学生基础教程》结合光盘资源,为初学者提供了一个全面、深入学习C++的平台,有助于他们在理论与...

    java语言程序设计课件最新版的

    Java语言程序设计是计算机科学领域中的重要课程,尤其对于初学者和希望深入理解编程概念的人来说。这份最新的Java语言程序设计课件提供了全面的学习资源,帮助...如果有任何疑问或需要讨论,欢迎共同参与,共同进步。

    Java实验报告及源码

    8. **泛型**:泛型提供了一种在编译时检查类型安全的方式,报告可能会有泛型类、泛型方法的实现示例。 9. **反射机制**:Java的反射机制允许程序在运行时动态地获取类的信息并调用其方法,实验可能涉及Class类、...

    JDK1.5 中文版文档.rar

    JDK1.5引入了枚举类型,使得创建一组相关的常量更加方便,同时也提供了更多的方法和特性,如枚举实例的比较和遍历。 3. **自动装箱与拆箱(Autoboxing/Unboxing)**: 为了解决原始类型与对应的包装类之间的转换问题...

    c++详细讲解课件(完全版)

    C++是一种广泛应用于系统软件、应用软件、游戏开发、嵌入式系统等领域的高级编程语言。它的设计思想融合了面向过程编程、面向对象编程以及泛型编程的特点...在学习过程中,如果遇到任何疑问,可以寻求帮助以获得解答。

    2023年最新c#入门介绍.md

    C#拥有许多强大的编程功能,如布尔条件、自动垃圾回收、标准库、组件版本管理、属性和事件、委托和事件管理、泛型、索引器、条件编译、多线程、LINQ和Lambda表达式等。 C#具有与Java非常相似的语法和编程风格,但在...

    C#范例开发大全源代码--刘丽霞版

    【描述】提到的"视频需要的留qq"可能暗示了该资源与一个在线课程或教学视频相关,学习者可以通过提供QQ联系方式获取进一步的教学支持或解答疑问。这表明这个源代码库不仅包含静态的学习材料,还可能配合动态的教学...

    清华大学C++程序设计与训练幻灯片

    学习过程中,学生被鼓励多看相关的书籍和网站,多尝试编写练习题,遇到疑问时主动寻求解答,深入思考程序设计的高层抽象和底层运行机制,并有效归纳整理所学内容。 推荐的参考书目包括《C++编程思想》、《程序设计...

    RedisRepository 分享和纠错

    第二个错误与Redis的主从架构有关。作者错误地认为在主从发生切换时,需要订阅切换事件并动态改变连接对象所指向的Endpoint。实际上,StackExchange.Redis库能够自动识别新的主从关系,无需开发者进行额外操作。这是...

    北邮电子院java作业

    7. **泛型**:泛型类和泛型方法的使用,以及通配符的理解。 8. **多线程**:Thread类和Runnable接口的使用,线程同步机制如synchronized关键字和wait/notify机制。 9. **枚举与注解**:枚举类型的定义和使用,...

    C++Primer第五版习题答案

    《C++ Primer第五版》是C++编程领域的一本经典教材,它深入浅出地介绍了C++语言的基础知识和高级特性。...建议读者在阅读完每个章节后,对照答案自己动手编程,遇到疑问再查阅答案,这样效果更佳。

    C++Primer源程序

    《C++ Primer》是C++编程领域的一本经典教材,旨在帮助初学者和有经验的程序员深入理解C++语言。这个压缩包包含了该书...在实践中遇到问题时,查阅书中的解释或借助在线资源,有助于快速解决疑问,深入理解C++的精髓。

    headfirstjava

    在描述中提到的“headfirstjava谷歌”,可能是指读者在学习过程中可能通过谷歌搜索引擎寻找相关的资源或解答疑问。Google作为一个强大的信息检索工具,通常能为开发者提供丰富的学习资料和社区支持。 标签“java”...

    C++程序设计教程(第二版)源代码050902

    3. **模板和泛型编程**:C++的模板功能允许创建泛型函数和泛型类,提供了一种编写不依赖具体类型代码的方法。源码中可能包含模板函数或模板类的实例,有助于理解其工作原理。 4. **异常处理**:在C++中,异常处理是...

    kotlin-docs

    - FAQ 包括了关于 Kotlin 的常见疑问及解答。 **9.2 与其他语言的比较** - **与 Java 的比较**:指出 Kotlin 相对于 Java 的优势与不同之处。 - **与 Scala 的比较**:分析 Kotlin 和 Scala 在语法、性能等方面的...

    LinQ入门教程.rar

    LINQ:Language Integrated Query 语言集成查询,其本质是对ADO.NET结果集通过反射连同泛型特性转换成对象集,实现OR模型的转换(类似JAVA中Hibernate框架,.NET中的NHibernate),它完全是基于.NET 2.0 的框架。...

Global site tag (gtag.js) - Google Analytics