项目里使用到排序, java里没有像C# 里的linq,只有stream,查找stream.sorted源码看到有个 然后看了一下实现,果然是能够处理null值的排序,如: 其中minPriceList是一个对象List,其中getCreateDate是日期字段,有可能为 ...
建议 : equals应该考虑null值情景 继续上一建议的问题,我们解决了覆写equals的自反性问题,是不是就很完美了呢 再把main方法重构一下: 很小的改动,那运行结果是什么呢 是两个true吗 我们来看运行结果: 竟然抛异常了 为什么p 就能在List中检查一遍,并且执行p .equals方法,而到了p 就开始报错了呢 仔细分析一下程序,马上明白了:当执行到p .equals p 时,由 ...
2016-04-25 16:36 0 4856 推荐指数:
项目里使用到排序, java里没有像C# 里的linq,只有stream,查找stream.sorted源码看到有个 然后看了一下实现,果然是能够处理null值的排序,如: 其中minPriceList是一个对象List,其中getCreateDate是日期字段,有可能为 ...
建议47: 在equals中使用getClass进行类型判断 本节我们继续讨论覆写equals的问题。这次我们编写一个员工Employee类继承Person类,这很正常,员工也是人嘛,而且在JEE中JavaBean有继承关系也很常见,代码如下: 输出结果: 很不 ...
举两个例子,看懂就懂!! ...
泛型可以减少强制类型的转换,可规范集合的元素类型,还可以提高代码的安全性和可读性,正是因为有了这些优点,自从Java引入泛型之后,项目的编码规则上便多了一条,优先使用泛型. Java泛型(Generic)的引入加强了参数类型的安全性,减少了类型的转换,它与C++中的模板templates比较类似 ...
建议19: 断言绝对不是鸡肋 在防御式编程中经常会用断言(Assertion)对参数和环境做出判断,避免程序因不当的输入或错误的环境而产生逻辑异常,断言在很多语言中都存在,C、C++、Python都有不同的断言表示形式。在Java中的断言使用的是assert关键字,其基本的用法 ...
建议17: 慎用动态编译 //=========这篇博文暂时理解不透......... 动态编译一直是Java的梦想,从Java 6版本它开始支持动态编译了,可以在运行期直接编译.java文件,执行.class,并且能够获得相关的输入输出,甚至还能监听相关的事件。不过,我们最期望的还是给定一段 ...
问题引出:“Integer应该用==还是equals” 讨论这个问题之前我们先放一段代码 上述代码可以看出 值相同的Integer对象做==操作,有的是true,有的是false,而equals操作的一直是true,为什么会出现这种情况? 我们首先解释==操作,为什么有的是 ...
str == null //判断引用是否指向任何对象str.length == 0 //判断引用指向的对象是否为空字符串,即字符串长度为0“”.equals(str) //判断引用指向的对象是否为空字符串和str.length()==0效果是一样的。 在C/C++里 ...