package other;public class A { public static void main(String[] args) {
String str1 = "aa";
if(str1.equalsIgnoreCase("aa")) {
str1 = null;
}
StringBuffer str = new StringBuffer();
str.append("aa").append(str1);//这里str1=null,好用
System.out.println(str.toString());
}}
输出结果是aanull
为什么str在调用append的时候参数是null,他却当成字符串处理了?
但是,
package other;public class A { public static void main(String[] args) {
str1 = null;
StringBuffer str = new StringBuffer();
str.append("aa").append(str1);//null,编译出错
System.out.println(str.toString());
}}
请问这是为什么?
String str1 = "aa";
if(str1.equalsIgnoreCase("aa")) {
str1 = null;
}
StringBuffer str = new StringBuffer();
str.append("aa").append(str1);//这里str1=null,好用
System.out.println(str.toString());
}}
输出结果是aanull
为什么str在调用append的时候参数是null,他却当成字符串处理了?
但是,
package other;public class A { public static void main(String[] args) {
str1 = null;
StringBuffer str = new StringBuffer();
str.append("aa").append(str1);//null,编译出错
System.out.println(str.toString());
}}
请问这是为什么?
解决方案 »
- java再不能初级的东东,但是有问题??????
- html中嵌入applet打印问题
- 100分求关于中文问题解答?
- application或applet怎样通过http上传文件?
- 关于类型转换的问题
- 请教关于java实现系统栏托盘程序……
- 一个java程序是中文转成unicode问题,有些不明白,请指教
- java 里面怎么把IP地址用split分割开?
- 我想问一个,java.long.object的clone()和isequal()是如何实现的,
- 急~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~``
- JAVA中,接口支持多重继承吗
- java.sql.sqlexception: IO异常
str1 没有定义类型啊
null其实是特殊的对象 null.toString() = "null";
str.append("aa").append(null);//null,编译出错
System.out.println(str.toString());
}}
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
第二段程序
public synchronized StringBuffer append(Object obj) {
return append(String.valueOf(obj));
}
append没有对null进行考虑
放个null让append()去选哪个方法执行呢?所以就罢工了