我们爱分享----一些工作上需要注意的小事情..
我没什么好分享的 就将最近开发过程中遇到的有趣的事情说一下吧(近期的 没办法很系统的说 见谅)
基础篇
关于对象类型与原始类型的羁绊...
当函数的参数列表中定义的参数类型为原始类型(如int,long)而调用者传递进去的参数是对象类型时(如Integer.Long) 如果对象类型为空 则会出现空指针错误 自动拆装箱会调用将对象类型转换为原始类型的函数 如果对象为空 就出现这个异常 虽然很基础 但是千万要记在心里
尤其是在没有使用空对象的属性和函数时出现空指针异常....(我被坑了 代码不是我写的 仔细看了下才知道 喵了个咪的)
另外 经常有人会问开发过程中用原始类型好还是用对象类型好 我的恩师曾经建议我用原始类型 原因是不用判断null..(当然 你们有你们的原因)
其实在我看来 没有什么好坏之分 他们各有各的用处 虽然说用原始类型无须调用new 也无须创建对象 这节省了时间和空间 但是原始类型能够 表达null么? 我想不能 毕竟null与0的意义是不同的 所以 结论是:看业务..
IO篇
关于java.util.Properties中list(PrintStream out)的问题
这里我贴下该函数的源代码(还有个PirintWriter作为参数的同名函数 基本实现都一样 就不都贴了)
public void list(PrintStream out) { out.println("-- listing properties --"); Hashtable h = new Hashtable(); enumerate(h); for (Enumeration e = h.keys();e.hasMoreElements() ;) { String key = (String)e.nextElement(); String val = (String)h.get(key); if (val.length() > 40) { val = val.substring(0, 37) + "..."; } out.println(key + "=" + val); } }