String tmp = null;
StringBuffer sb = new StringBuffer("");
如果用:
sb.append(tmp); 实际拼接的“null”,也就是为null的字符串,恶如是null字符串对象。
但是,我想要拼接为null的字符串对象,有何办法,请解决,谢谢大家了。
不行的,StringBuffer里面都是字符串,不能是null,null什么也不是:https://blog.csdn.net/xxdw1992/article/details/83376720
从源代码可以看出,其对null进行了处理
public AbstractStringBuilder append(String str) {
if (str == null)
return appendNull();
int len = str.length();
ensureCapacityInternal(count + len);
str.getChars(0, len, value, count);
count += len;
return this;
}
private AbstractStringBuilder appendNull() {
int c = count;
ensureCapacityInternal(c + 4);
final char[] value = this.value;
value[c++] = 'n';
value[c++] = 'u';
value[c++] = 'l';
value[c++] = 'l';
count = c;
return this;
}
嗯嗯,所以,我要想拼接null如何办了
@lanto_liang: 你还没看懂,null不是字符串,它什么都不是,不能跟字符串放一起,null和"null"不是一回事,后者才是字符串,而stringbuffer只能存字符串
很简单的例子,null不能跟字符直接相加
如果你想要用null,可以考虑集合,集合的元素可以是null
sb.append(tmp)参数tmp按照字符串的值加入的
实在需要这样做的话,,可以如下的方式判断下
sb.append(tmp==null ? "" : tmp)
null不是字符串怎么拼接
除非是字符串null
像这样‘null’