java中关于null和返回值的问题

时间:2021-04-04 20:19:19
 public  String getTwoDay(String sj1, String sj2)
 {   
        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转换成数字有可能会出错。

#2


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


引用 2 楼 awusoft 的回复:
null空的对象.
""表示的是一个空字符的String对象.
String+Object会变成String+String.valueOf(Object)
所以结果会变成了String.

String str="";
String aa=null;
null可以表示任何的空对象.
Integer i=null;
Long l=null;
等.

+1

#6


清楚了,谢了

#1


如果返回null,在字符串计算的时候就会出问题;
基本数据类型+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;
等.

#3


楼上说的很清楚,

#4


null表示还没new出对象,就是还没开辟空间  “”表示new出了对象,但是这个对象装的是空字符串

#5


引用 2 楼 awusoft 的回复:
null空的对象.
""表示的是一个空字符的String对象.
String+Object会变成String+String.valueOf(Object)
所以结果会变成了String.

String str="";
String aa=null;
null可以表示任何的空对象.
Integer i=null;
Long l=null;
等.

+1

#6


清楚了,谢了