java泛型(generic) 2016-07-11 问题 未使用泛型举例: 说明:任何Object子类均可以存入Object集合,但是从集合中获取元素,则是Object对象,需要强制转换,可能抛异常。 意义 使用泛型能够限定集合中存放的元素类型,标记集合中的元素类型,对存入集合的元素进行类型检查, ...
分类:
编程语言 时间:
2016-07-11 07:51:11
阅读次数:
208
Java 泛型方法 @author ixenos 泛型方法可以定义在普通类中,也可以定义在泛型类中 类型变量放在修饰符(如public static)后面,返回类型的前面 定义在泛型类中时,禁止使用带有类型变量的静态方法如 public static <T> T getMiddle(T...a) { ...
分类:
编程语言 时间:
2016-07-08 08:59:37
阅读次数:
196
Java 泛型的约束与局限性 @author ixenos 不能用基本类型实例化类型参数 不能用类型参数代替基本类型:例如,没有Pair<double>,只有Pair<Double>,其原因是类型擦除。擦除之后,Pair类含有Object类型的域,而Object不能存储double值。这体现了Jav ...
分类:
编程语言 时间:
2016-07-08 01:28:23
阅读次数:
248
泛型数组 @author ixenos 先给结论 不能(直接)创建泛型数组 泛型数组实际的运行时对象数组只能是原始类型( T[]为Object[],Pair<T>[]为Pair[] ),而实际的运行时数组对象可能是T类型( 虽然运行时会擦除成原始类型 ) 一般解决方案:(泛型数组包装器):使用Arr ...
分类:
编程语言 时间:
2016-07-07 06:19:14
阅读次数:
385
类型擦除 一、概述 Java泛型在使用过程有诸多的问题,如不存在List.class, List不能赋值给List(不可协变),奇怪的ClassCastException等。 正确的使用Java泛型需要深入的了解Java的一些概念,如协变,桥接方法,以及这篇笔记记录的类型擦除。Java泛型的处理几乎 ...
分类:
其他好文 时间:
2016-07-03 21:25:36
阅读次数:
190
首先,强调一个观点: 对于我这样的初学者,一定要站在虚拟机和编译器的角度来分析java 语言的种种特性,泛型也不例外。(我认为这个一条正确的学习经验) 写这篇文章起源于最近在学java,有一天在路上和一个同事在讨论什么是java泛型的时候,发现有些概念非常模糊。于是,我想澄清一下,并记录下来。 希望 ...
分类:
编程语言 时间:
2016-07-03 17:10:31
阅读次数:
123
学习目标
掌握泛型接口的使用
掌握泛型方法的定义的及使用
掌握泛型数组的使用
掌握泛型的嵌套设置
之前所有的操作都是在类中直接使用泛型操作的,那么,对于Java来说,也可以直接在接口中定义及使用泛型。
定义泛型接口
在JDK1.5之后,不仅仅可以声明泛型类,也可以声明泛型接口,声明泛型接口和声明泛型类的语法类似,也是在接口名称后面加上,如下格式所示:
[访问权限]...
分类:
编程语言 时间:
2016-06-29 11:24:43
阅读次数:
258
学习目标
掌握通配符“?” 的使用
掌握受限泛型的设置
掌握泛型与子类继承的限制
匹配任意类型的通配符
在开发中对象的引用传递是最常见的,但是如果在泛型类的操作中,在进行传递的时候泛型类型必须匹配才可以传递。否则是无法传递的。
class Info{
private T var ; // 定义泛型变量
public void setVar(T var){
this.v...
分类:
编程语言 时间:
2016-06-28 13:02:56
阅读次数:
247
一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(String[] args) { 4 List list = new ArrayList(); 5 list ...
分类:
编程语言 时间:
2016-06-25 10:59:03
阅读次数:
233