Effective Java(数组和泛型的实现方式、用无限制的通配符提高API的灵活性)
来源:互联网 发布:装修公司源码 编辑:程序博客网 时间:2024/05/16 17:13
1、数组和泛型的实现方式
引用书中的话“一般来说,将集合声明参数化,以及使用JDK所提供的泛型和泛型方法,这些都不太困难。编写自己的泛型会比较困难一些,但是值得花些时间去学习如何编写”。
举一个简单例子来帮助我们如何正确编写泛型:
/** * Created by zzy on 2017/9/24/0017. */public class Test<E> { private E[] elements; public Test() { //elements = new E[16]; //编译时出错,不能创建不可具体化的类型的数组 elements = (E[]) new Object[16];//E[]实行类型强制转换,返回的是一个数组 }}
还有另外一种方法:
/** * Created by zzy on 2017/09/24/0017. */public class Test<E> { private Object[] elements; public Test() { //elements = new E[16]; //编译时出错,不能创建不可具体化的类型的数组 elements = new Object[16]; } public E test() { return (E) elements[0];//用E实行类型强制转换,返回的是数组中的一个元素 }}
当在编写不可避免要使用数组时,可参考以上两种数组和泛型的实现方式。
2、优先考虑泛型方法
泛型方法即在定义方法的返回值前加上,例如Collections.sort方法,至于优点不再多说,一句话:能用泛型尽量用泛型。
public static <T> void sort(List<T> list, Comparator<? super T> c)
3、利用无限制的通配符提高API的灵活性
之前我们提到了<?>
形式的无限制通配符,这里则是有限制通配符。上一条目中已经出现了有限制通配符,它一共有这么2种:
<? extends E>
:表示可接受E类型的子类型;
<? super E>
:表示可接受E类型的父类型。
阅读全文
0 0
- Effective Java(数组和泛型的实现方式、用无限制的通配符提高API的灵活性)
- effective java(28) 之利用有限制通配符来提升API的灵活性
- (28):利用有限制通配符来提高API的灵活性
- 利用有限制通配符来提升API的灵活性
- 第二十八条:利用有限通配符提升API的灵活性
- 利用有限制通配符来提升API的灵活性。
- EffectiveJava(28)怎么利用有限制的通配符类型来提升API的灵活性
- 第28条:利用有限制通配符来提升API的灵活性
- 第28条 泛型——利用有限制通配符来提升API的灵活性
- Python用无限制数组实现求素数,不限制质数的个数,用筛选的方法!
- DNN的数据访问方式——合理运用模式,提高数据访问的灵活性
- java无限制通配符
- Java语法--通配符的上界通配符和下界通配符
- JAVA泛型的通配符
- java泛型的通配符
- 利用XSLT 实现更好的灵活性和方便
- 文字录入无限制Undo,Redo的实现
- 通过理顺软件的依赖关系提高应用程序灵活性
- 正则表达式
- linux下修改tomcat默认访问主页
- 20170925_死锁的产生和消除
- 无法解析的外部符号问题小结
- angularjs 获取 ResponseEntity<String>
- Effective Java(数组和泛型的实现方式、用无限制的通配符提高API的灵活性)
- LeetCode:M-114. Flatten Binary Tree to Linked List
- WPF Binding值转换器ValueConverter使用简介(一)
- jitter in fMRI design
- C#学习笔记13-抽象类和接口
- MATLAB中cell数组的全面介绍
- U盘安装镜像WIN10 64 专业版 BMR转GPT 的问题
- Maven的安装
- Google支付服务端client_id和client_secret及refresh_token参数申请