GENERICS
文章平均质量分 58
专业搬砖工
这个作者很懒,什么都没留下…
展开
-
[Effective Java] Item 25: Prefer lists to arrays
Arrays:covariant: if Sub is a subtype of Super, then Sub[ ] is a subtype of Super[ ]reified: arrays know and enforce their element types at runtimeGenerics:invariant: two distinct types Type1 and Type2, List<Type1> is neither a subtype nor a s翻译 2021-02-19 21:52:42 · 117 阅读 · 0 评论 -
[Effective Java] Item 28: Use bounded wildcards to increase API flexibility
因为parameterized type是invariant的,换句话说,也就是两个不同的类,type1和type2,无论type1和type2是什么关系,List<type1>既不是List<type2>的subtype也不是supertype。这样设计generic类别时会有局限性,还是拿Stack来举例:public class Stack<E> { public Stack(); public void push(E e); publi翻译 2021-02-16 19:58:29 · 324 阅读 · 0 评论 -
[Effective Java] Item 26: Favor generic types
Generic类型的集合类不需要客户端代码进行cast操作,而且更安全,所以在设计集合类的时候,尽可能设计成generic类型。如何设计可以借鉴Stack这个类的设计// Object-based collection - a prime candidate for genericspublic class Stack { private Object[] elements; private int size = 0; private static final int DEF翻译 2021-01-31 17:21:53 · 109 阅读 · 0 评论 -
Wildcards in Java
Wildcards in JavaUnbounded wildcardsThe unbounded wildcard type是用通配符字母?来表示的,比如List<?>,我们把这个叫做一个未知类型的列表。通常有两种情况特别适用使用unbounded wildcard type:如果你写一个method,里面的实现是需要用到Object类的方法的当你的代码用到generic class的方法,但是这个方法不依赖type parameter例子:写一个方法打印出来列表中所有元素(并翻译 2021-01-30 16:52:02 · 214 阅读 · 1 评论 -
[Effective Java] Item 24:Eliminate unchecked warnings
什么是 unchecked warningUnchecked warning是由于compiler没有足够的type信息,无法判断某个操作是否type safety,所以给了warning。比如把一个raw type返回值的方法赋值给了一个generic type,compiler无法知道raw type集合里面的实例时什么,所以就不能肯定这个赋值的正确性,所以给与了警告,很有可能在runtime就发生了ClassCastException.所以每一个unchecked warning都表示可能在run翻译 2020-11-22 00:22:30 · 155 阅读 · 0 评论 -
[Effective Java] Item 23: Don’t use raw types in new code
[Effective Java] Item 23: Don’t use raw types in new code翻译 2020-11-20 00:22:58 · 177 阅读 · 0 评论