---恢复内容开始---

异常、断言

所有的异常都继承自Throwable类,异常包括已检查异常和未检查异常,应该抛出已检查异常,而未检查异常要么是不可控的(Error),要么是应该避免发生的(RuntimeError)。p475

对于子类中覆盖了父类方法的方法,其抛出的异常不能比父类中方法抛出的异常更特定,也可以直接不抛出异常。特别的,如果父类中的方法没有抛出异常,那么子类覆盖的方法不能抛出异常。p476

通常应该捕获那些知道应该如何处理的异常,而对于那些不知道该怎么处理的异常将继续进行传递。p480

泛型

在泛型类的设计中,如果要求类型参数一定要实现某个类,则可以对其进行限制,如:T extends Cloneable。p532

如果有多个限定,可以在类(接口)中间用&分隔,且只能有一个类限定而且类要作为第一个限定条件。为了效率,应该将功能最少的接口放在最后面。p533

泛型类在编译为原型类的时候,如果类型参数没有限定则用Object代替,如果有现定则用限定类型替换。p535

桥方法用于解决泛型类擦除类型参数后引起的多态冲突问题。p536

不能创建泛型类型的数组,比如有一个Pair<String>类,不能创建Pair<String>[]数组,但是可以声明变量。不能创建的原因在于在擦除类型变量之后该类型变为Pair[],它可以放置比如Pair<Double>元素。p539

一个类或类型变量不能同时成为两个接口类型的子类,而这两个接口是同一接口的不同参数化。p545

由于通配符不能用于匹配类型,所以带有超类限定的通配符可以保证更改器的完全合法性,可以向泛型对象写入;带有子类限定的通配符可以保证访问器的合法性,可以从泛型类读入对象。p550

---恢复内容结束---

最新文章

  1. 【代码笔记】iOS-由身份证号码返回性别
  2. C#使用ajaxForm进行上传图片
  3. CentOS使用virtualenv搭建独立的Python环境-python虚拟环境
  4. SQLServer 脚本测试
  5. 移动Web单页应用开发实践——实现Pull to Request(上/下拉请求操作)
  6. Visual Studio 文件没发布出来
  7. 关于heritrix安装配置时出现”必须限制口令文件读取访问权限”的解决方法
  8. python os.path模块--转载
  9. cocoaPods的安装和使用之详细介绍
  10. 使用Autofac部署IIS6.0时未能加载文件或程序集“System.Core, Version=2.0.5.0...“
  11. [转] EF Configuring a DbContext
  12. winPcap编程之获取适配器详细信息(三)
  13. 笔记:Maven 生成项目站点
  14. 供应商导入的API补充(详解EBS接口开发之供应商导入)
  15. windows linux 子系统折腾记
  16. JarvisOJ Basic 爱吃培根的出题人
  17. 判断js数据类型的四种方法,以及各自的优缺点(转)
  18. Ubuntu系统查看mongo得慢日志,及一些操作
  19. tableView与导航栏的偏移问题
  20. c# Parallel.For 并行编程 执行顺序测试

热门文章

  1. Javassist进行方法插桩
  2. dfs.datanode.max.transfer.threads
  3. tomcat一个端口配置多个项目
  4. Hadoop集群的hbase介绍、搭建、环境、安装
  5. 常用http响应报文分析
  6. rsync安装及其配置
  7. GetConsoleScreenBufferInfo 函数--获取控制台屏幕缓冲区信息
  8. Objectiv-c - UICollectionViewLayout自定义布局-瀑布流
  9. 【CSS】background 的覆盖
  10. 一步一步深入理解Dijkstra算法