以为任何对null的使用都会有异常,(非字符串操作符'+) '例如:
String a = null;
String b = a + "#str";
System.out.println(b);
在我的印象里,String b = a + "#str"这行应该会出现NullPointerException,然而事实却不是这样,结果null#str。
我们都知道,字符串操作符'+'可以对任何的对象、基本数据类型作'+',在操作之前会把所有的参数都转成String类型。
那么是如何把其他类型转成String类型的呢,应该是通过String.valueOf()方法。
那么,上面的结果就应该是String.valueOf(Object)的杰作:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
他对null做了特殊的处理,我能想象的出这样做的好处,再说valueOf是String的一个方法他就是要把null的东西转成"null"也是无可非议的。但是当在字符串相加的操作上面,使用了此方法之后,程序的结果就有点让人迷惑了。