`
flowercat
  • 浏览: 361589 次
社区版块
存档分类
最新评论

范型的一些要点

阅读更多
1、静态变量不能用范型
public class MyGen<T>{
    private static T;//错误的
}

2、范型的定义不会被继承,若A是B的子类,C是一个声明了范型定义的类型,C(A)不是C(B)的子类
List<String> l = new ArrayList<String>();
List<Object> o = l;//错误的


3、范型函数的使用
public <T> void fromArrayToCollection(T[] a,Collection<T> c){
		for(T o:a){
			c.add(o);
		}
	}

如果一个函数的参数类型与函数返回的参数没有必然关联,同时对于该函数其他的参数的类型也没有依赖关系,那么我们就应该使用统配符?,否则就应该使用泛型函数。这可以参考java.util包中collection类型的一些方法的定义:
static void swap(List<?> list, int i, int j)
static <T> void copy (List<? super T> dest, List<? extends T> src)  

4、SpringSide的用法
如果函数输入参数里含Class类型,而返回值又是该Class的实体,应该将该函数设为泛型函数。最典型的例子是HibernateGenericDao的get() 函数

public <T> T get(Class<T> entityClass, Serializable id) {   
   return (T) getHibernateTemplate().get(entityClass, id);   
}  


其中眼花缭乱的第一个<T>声明这是一个泛型函数,第2个T声明返回值为T,第三个Class<T>代表 T.class。基类写的辛苦,但子类用得爽快

Book book = (Book)manager.get(Book.class,1) 简化成了 Book book = manager.get(Book.class,1);
分享到:
评论

相关推荐

    jdk1.5中的范型

    ### JDK 1.5 中的范型 #### 引言 自 JDK 1.5 开始,Java 语言正式引入了一项重要的特性——泛型(Generics),这使得 Java 成为了一个更为强大且灵活的语言。泛型允许开发人员编写出类型安全的通用类或方法,从而...

    《软件工程导论》(第 6 版)1 - 13 章课后习题详解答案,解答全面细致 涵盖多领域,包括理论讲解、案例分析及设计方法等

    第 1 章介绍软件工程学概述,包括软件危机的定义、表现和原因,软件工程的定义、特性及消除软件危机的方法,还阐述了结构化范型和面向对象范型的要点及优缺点,并比较了不同软件生命周期模型。 第 2 章围绕可行性...

    信息化教育概论期末考试要点总结.pdf

    首先,信息时代的主要特征包括信息技术的广泛普及,将知识视为最重要的生产要素,强调适应变化与创新的能力,推崇合作与协作的生存方式,并且科学范型正从决定论转向非决定论。这些变化影响着教育的方向,使得教育...

    [详细完整版]21软件工程.doc

    软件工程的两大范型分别是什么?它们有什么不同? 5.软件工程的基本原理是什么? 6.软件工程有哪些基本思想? 7.请介绍逐步求精的基本思想。 8.什么是软件过程?软件过程有哪些方法? 9.什么是软件过程? 10.软件...

    2_C++选择题.docx

    根据提供的文档内容,我们可以归纳并深入探讨以下几个关键的C++知识点: ### 1. C++基本要素 - **重复对象**:在C++中,...这些内容覆盖了C++的基础语法、面向对象编程的基本概念以及一些常见的编程实践和技术要点。

    面向对象软件工程复习资料.docx

    面向对象方法学的四个要点包括对象、类、继承和消息。对象是现实世界实体的抽象,类是对象的模板,继承实现了代码的重用,而消息传递是对象间的通信机制。面向对象的三大特性——封装、继承和多态性,封装保证了数据...

    设计模式解析(第二版)

    - **教育价值**:本书不仅可以作为一门面向对象分析与设计课程的教学参考书,还能够帮助读者建立坚实的面向对象编程基础,掌握设计模式的核心思想和技术要点。 总之,《设计模式解析》这本书通过理论结合实践的方式...

    最新考研软件工程复试笔试面试详细问答.doc

    传统方法也称为经典软件工程方法或生命周期方法或结构化范型。 二、流程图与数据流图 流程图和数据流图是两种不同的图形工具,前者描述系统中某个加工的执行细节,而后者描述系统逻辑模型,反映数据在系统中流动和...

    软件工程第九章-面向对象方法学引论PPT课件.ppt

    面向对象方法学的要点有四个:认为客观世界是由各种对象组成的,类是对一组对象的抽象,按照子类与父类的关系,把若干个对象类组成一个层次结构的系统,对象彼此之间仅能通过传递消息互相联系。 面向对象方法学可以...

    考研软件工程复试笔试面试详细问答.docx

    - **传统方法**(经典软件工程方法或生命周期方法或结构化范型): 侧重于将软件开发过程分为若干个阶段,每个阶段都有明确的目标和产出物,强调计划性和有序性。 - **面向对象方法**: 强调以对象为中心的设计思想,...

    c++教材解答,陈家俊

    根据提供的文件信息,我们可以归纳出以下相关知识点: ### 一、冯·诺依曼计算机的工作模型 冯·诺依曼架构定义了一种通用的计算机设计模型,...通过对这些概念的理解,可以更好地掌握C++编程的基本原理和技术要点。

    考研软件工程复试笔试面试详细问答 华科

    - **传统方法**(经典软件工程方法、生命周期方法或结构化范型):这种方法强调软件开发过程中的有序性和计划性。通常涉及需求分析、设计、编码、测试和维护等多个阶段,并且每个阶段都有明确的目标和成果物。这种...

    程序设计教程第二版陈家骏习题解答

    ### 程序设计教程第二版陈家骏习题解答知识点总结 #### 一、冯·诺依曼计算机的工作...以上知识点总结了《程序设计教程第二版》中涉及的核心概念和技术要点,有助于读者深入理解计算机程序设计的基础理论和实践技能。

    领域驱动设计第一分卷

    3.2 建模范型和工具支持 36 3.3 突出主旨:为什么模型对用户很关键 41 3.4 实践型建模人员 43 .第ⅱ部分 模型驱动设计的构建块 第4章 分离领域 47 4.1 分层架构 47 4.1.1 层间的联系 51 4.1.2 架构框架 51 ...

    领域驱动设计第二分卷

    3.2 建模范型和工具支持 36 3.3 突出主旨:为什么模型对用户很关键 41 3.4 实践型建模人员 43 .第ⅱ部分 模型驱动设计的构建块 第4章 分离领域 47 4.1 分层架构 47 4.1.1 层间的联系 51 4.1.2 架构框架 51 ...

Global site tag (gtag.js) - Google Analytics