判断以下哪种书写时正确的? 1.ArrayList<String> lists = new ArrayList<String>();2.ArrayList<Object> lists = new ArrayList<String>();3.ArrayList<String> lists = new ...
分类:
编程语言 时间:
2016-11-24 11:52:27
阅读次数:
233
没有自己敲,这篇博客讲的不错,直接记录。 犯懒啊 重点关注 T,?以及擦除 Java总结篇系列:Java泛型:http://www.cnblogs.com/lwbqqyumidi/p/3837629.html ...
分类:
编程语言 时间:
2016-11-17 14:05:08
阅读次数:
130
1 协变数组类型(covariant array type) 数组的协变性: if A IS-A B then A[] IS-A B[] 也就是说,java中的数组兼容,一个类型的数组兼容他的子类类型数组。 协变数组好处:使得代码的灵活性更强。 协变数组的坏处:过于灵活导致类型混乱,比如: Pero ...
分类:
编程语言 时间:
2016-11-11 11:46:21
阅读次数:
396
https://www.zhihu.com/question/20400700/answer/117464182 Java是单继承,所有继承的类构成一棵树。 class Apple(A)class Banana(B) extend Apple(A) class Orange ()) extend A ...
分类:
编程语言 时间:
2016-11-10 14:11:46
阅读次数:
169
先引用一段Java编程思想中的一段话 Java泛型的核心概念:告诉编译器你想使用什么类型,然后编译器帮你处理一切细节。 关于类型推断: 类型推断只对赋值操作有效,其他时候并不起作用。如果你见过一个泛型方法调用的结果 作为参数传递给另一个方法,这时编译器不会执行类型推断。在这种情况下,编译器认为:调用 ...
分类:
编程语言 时间:
2016-10-26 20:00:18
阅读次数:
162
学习java泛型的时候,发现网络上有很多不错的文章总结,先给出链接,方便查看和复习: http://blog.csdn.net/caihuangshi/article/details/51278793 ...
分类:
编程语言 时间:
2016-10-24 09:45:00
阅读次数:
184
Java泛型中有存在一种方式叫做类型擦除,也就是说泛型在编译期间进行类型检验上做到有效安全,但是在运行当中,会将该泛型类型用顶层父类(若无继承关系则用Object)代替,然后再进行强转换成目标类型,这种类型擦除也存在在泛型方法中,但是方法的擦除带来了两个复杂的问题。 在类型擦除之后,代码演变成如下的 ...
分类:
其他好文 时间:
2016-10-17 07:07:41
阅读次数:
115
泛型的存在,是为了使用不确定的类型。 为什么有泛型? 1. 为了提高安全 2. 提高代码的重用率 (自动 装箱,拆箱功能) 一切好处看代码: ...
分类:
编程语言 时间:
2016-10-11 20:52:55
阅读次数:
141
List<? extend Fruit> list=new ArrayList<>(); 解释为:集合中元素是继承自Fruit,究竟是何种类型,编译器也无法判定。 如果要从集合中读取类型T的数据,并且不能写入,可以使用 ? extends 通配符;(Producer Extends) List<? ...
分类:
编程语言 时间:
2016-10-10 13:46:57
阅读次数:
190
遇到<A>,<B>,<K,V>等,是用到了java中的泛型。 一般使用<T>来声明类型持有者名称,自定义泛型类时,类持有者名称可以使用T(Type) 如果是容器的元素可以使用E(Element),若键值匹配可以用K(Key)和V(Value)等, 若是<?>,则是默认是允许Object及其下的子类, ...
分类:
编程语言 时间:
2016-10-09 13:41:08
阅读次数:
153