{
SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
long day = 0;
try {
java.util.Date date = myFormatter.parse(sj1);
java.util.Date mydate = myFormatter.parse(sj2);
day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
}
catch (Exception e)
{
return ""; //1
}
return day+"" ;//2
}
这是一个计算日间隔的部分代码 //1中的return ""和return null有什么区别没?null是一个对象,""也是一个对象啊
还有//2中为什么day+""返回的就是字符窜
印象中基本数据类型+String类型结果都是字符窜,这是java规定的吗?
6 个解决方案
#1
如果返回null,在字符串计算的时候就会出问题;
基本数据类型+String类型结果都是String,因为String转换成数字有可能会出错。
基本数据类型+String类型结果都是String,因为String转换成数字有可能会出错。
#2
null空的对象.
""表示的是一个空字符的String对象.
String+Object会变成String+String.valueOf(Object)
所以结果会变成了String.
String str="";
String aa=null;
null可以表示任何的空对象.
Integer i=null;
Long l=null;
等.
""表示的是一个空字符的String对象.
String+Object会变成String+String.valueOf(Object)
所以结果会变成了String.
String str="";
String aa=null;
null可以表示任何的空对象.
Integer i=null;
Long l=null;
等.
#3
楼上说的很清楚,
#4
null表示还没new出对象,就是还没开辟空间 “”表示new出了对象,但是这个对象装的是空字符串
#5
+1
#6
清楚了,谢了
#1
如果返回null,在字符串计算的时候就会出问题;
基本数据类型+String类型结果都是String,因为String转换成数字有可能会出错。
基本数据类型+String类型结果都是String,因为String转换成数字有可能会出错。
#2
null空的对象.
""表示的是一个空字符的String对象.
String+Object会变成String+String.valueOf(Object)
所以结果会变成了String.
String str="";
String aa=null;
null可以表示任何的空对象.
Integer i=null;
Long l=null;
等.
""表示的是一个空字符的String对象.
String+Object会变成String+String.valueOf(Object)
所以结果会变成了String.
String str="";
String aa=null;
null可以表示任何的空对象.
Integer i=null;
Long l=null;
等.
#3
楼上说的很清楚,
#4
null表示还没new出对象,就是还没开辟空间 “”表示new出了对象,但是这个对象装的是空字符串
#5
+1
#6
清楚了,谢了