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);
分享到:
相关推荐
### JDK 1.5 中的范型 #### 引言 自 JDK 1.5 开始,Java 语言正式引入了一项重要的特性——泛型(Generics),这使得 Java 成为了一个更为强大且灵活的语言。泛型允许开发人员编写出类型安全的通用类或方法,从而...
第 1 章介绍软件工程学概述,包括软件危机的定义、表现和原因,软件工程的定义、特性及消除软件危机的方法,还阐述了结构化范型和面向对象范型的要点及优缺点,并比较了不同软件生命周期模型。 第 2 章围绕可行性...
首先,信息时代的主要特征包括信息技术的广泛普及,将知识视为最重要的生产要素,强调适应变化与创新的能力,推崇合作与协作的生存方式,并且科学范型正从决定论转向非决定论。这些变化影响着教育的方向,使得教育...
软件工程的两大范型分别是什么?它们有什么不同? 5.软件工程的基本原理是什么? 6.软件工程有哪些基本思想? 7.请介绍逐步求精的基本思想。 8.什么是软件过程?软件过程有哪些方法? 9.什么是软件过程? 10.软件...
根据提供的文档内容,我们可以归纳并深入探讨以下几个关键的C++知识点: ### 1. C++基本要素 - **重复对象**:在C++中,...这些内容覆盖了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 ...