众所周知,StringBuffer.append(null);
并不会不追加字符串,而是直接给你来个大惊喜,追加一个字符串“null”
。
我们肯定不应该修改jdk,毕竟更高级别的程序员们想早一些帮你暴露空指针问题才这么搞了一下子。但是,如果我就是想非空才追加呢?我们可以用一个类包它一下,然后只留下我们感兴趣的append()
和toString
即可。代码如下:
public class MyStringBuffer {
private StringBuffer stringBuffer;
public MyStringBuffer() {
this.stringBuffer = new StringBuffer();
}
public MyStringBuffer(String originString) {
this.stringBuffer = new StringBuffer(originString);
}
public void append(Object object) {
if (object != null) {
stringBuffer.append(object);
}
}
@Override
public String toString() {
return stringBuffer.toString();
}
}