1. Object的toString方法返回的格式是 类名+@+散列码的十六进制表示。toString约定我们必须覆盖这个方法。

例如在PhoneNumber的toString方法里可以 写成 区号-电话号码的形式,给客户一个约定的友好的展示。

String.format方法可以进行一些必要格式的显示,比较高效

如:

String.format("%1$,12d", 85022088)

具体实现可以参阅:http://www.iteye.com/topic/339734

2.考虑实现comparable接口

如果你要对一个ServiceEvent的事件进行排序,最好在这个实体里就实现comparable接口

形如:

@Overridepublic int compareTo(Object o) {return this.eventTime.compareTo(((ServiceCtrlEvent)o).getEventTime());}

这样就可以很简单的和很多集合类一起使用,排序可以直接使用集合的排序,

Collections.sort(serviceCtrlEvents);

有一点值得一提:

由于compareTo方法只是指定了返回值的符号,并没有制定返回值,在通常我们些的compareTo方法上会有一定的改进空间:

如实现电话号码的比较时

public int compareTo(PhoneNumber pn){if(areacode<pn.areaCode){return -1; }ifif(areacode>pn.areaCode){return 1; }if(lineNumber<pn.lineNumber){return -1; }if(lineNumber>pn.lineNumber){return 1; }return 0;
}

可以改进为:

public int compareTo(PhoneNumber pn){areaCodeDiff =areacode-  pn.areaCode;if(areaCodeDiff !=0){areaCodeDiff; }……return 0;
]

Java平台的所有值类Integer、BigDecimal 等都实现了这个comparable接口。

《Effective Java》阅读体会之四--通用方法(建议覆盖toString,compare排序的比较)相关推荐

  1. Java Generics示例教程 - 通用方法,类,接口

    Java Generics示例教程 - 通用方法,类,接口 Java Genrics是Java 5中引入的最重要的功能之一.如果您一直在使用Java Collections 对于版本5或更高版本,我确 ...

  2. Effective Java读书笔记六:方法

    第38条:检查参数的有效性 绝大多数方法和构造器对于传递给它们的参数值都会有些限制.比如,索引值必须大于等于0,且不能超过其最大值,对象不能为null等.这样就可以在导致错误的源头将错误捕获,从而避免 ...

  3. Effective Java之保护性编写readObject方法(七十六)

    readObject方法实际上相当于另一个公有的构造器,与其他构造器一样,它也需要进行参数的有效性检查与保护性拷贝.参考:Effective Java之必要时进行保护性拷贝(三十九) 原因很简单,为了 ...

  4. Effective Java阅读笔记——引言

    "我很希望10年前就拥有这本书.可能有人认为我不需要任何Java方面的书籍,但是我需要这本书." --Java之父 James Gosling 在图书馆找到这本java著作时,首先 ...

  5. Effective Java 阅读笔记——方法

    38:检查参数的有效性 每当编写方法或者构造器的时候,应该考虑它的参数有哪些限制,在方法的开头处对参数进行检查,并且把这些限制写入文档. 注意: 对于公有方法,应该使用@throws标签在文档中说明违 ...

  6. Java解析excel的通用方法--基础版

    提出问题: 通过销售地图项目和目前的评分系统的项目都需要用到解析excel,并且每次因为excel中列名的不同和对应的实体类的不同,每一次都需要重新写一个解析excel的方法,代码之长很复杂也很麻烦写 ...

  7. Effective Java之避免使用终结方法(七)

    1.终结方法的缺点 1.终结方法不能保证及时执行,因此注重时间的任务不应该由终结方法来完成.例如:用终结方法去关闭已经打开的文件,这是一种严重错误,因为打开文件描述符是一种很有限的资源,如果jvm延迟 ...

  8. 《Effective Java读书笔记》--通用程序设计

    2019独角兽企业重金招聘Python工程师标准>>> 将局部变量作用域最小化 最有力的技术是在第一次使用它时声明,并把它初始化. 如下代码分别用for和while对lst数组做了两 ...

  9. 【Effective Java】1.静态工厂方法来替换构造函数

    优点一:不像构造函数,它有具意的名称 因为可以取具意的名称,更容易明白如何使用,可读性也更好, 优点二:每次调用无需创建新的对象 优点三:允许返回子类对象 这些子类可以不为public ,这样可以打造 ...

最新文章

  1. java batch基础_详解Spring Batch 轻量级批处理框架实践
  2. 手把手教你使用Gene6FTP远程管理
  3. tomcat work目录的作用就是编译每个项目里的jsp文件为java文件如果项目没有jsp页面则这个项目文件夹为空...
  4. 汇编: and,or逻辑运算指令
  5. java 循环依赖_java – 如何在Gradle中解决循环依赖
  6. 二.安全NA之ASA基础
  7. Linux文件系统简介及常用命令
  8. 启动万维网发布服务(W3SVC)
  9. linux应用之----进程控制理论
  10. java 生成二维码
  11. PHP Yii框架中使用smarty模板
  12. 作者:龚南宁,数据堂(北京)科技股份有限公司对外合作部副总监
  13. MyBatis--工具类模板
  14. 编码原则:如何减少缩进层次
  15. CSDN使用富文本编辑器为所发布的文章生成右侧目录
  16. mac下载的api文档怎么_Python调用百度API实现语音识别(二)
  17. 加密设备攻防(二)- 智能设备篇
  18. C语言自学之路一(初识C语言)
  19. 新手入门吉他买什么好?十年吉他老司机教你如何远离烧火棍,附上靠谱吉他品牌推荐!
  20. 闲聊机器人实例三:python实现小姜机器人(检索式chatbot_sentence_vec_by_word_词向量句向量)

热门文章

  1. reStructuredText语法规则(官方的)
  2. Linux下QT软件使用C++语言调用百度AI接口实现人脸库人脸搜索
  3. MSF生成木马渗透WIN7
  4. STM32上电复位与手动复位介绍
  5. 骨骼动画原理及简单实现
  6. 北京最大废品集散地面临拆迁 曾登上时代周刊
  7. CPU性能优化:Cache
  8. 聊聊我们Java中代码优化的30个小技巧
  9. 程序员的故事 001 小眼镜入职
  10. 推荐5 款好用的 Linux 音乐播放器