可以在java中使用静态方法,它返回null

时间:2012-04-05 18:09:06

标签: java static-methods

我正在尝试访问我创建的Utils类中的静态方法:

 public class Utils{

 public static Date convertToDate(String dateString, String dFormat){

    SimpleDateFormat dateFormat = new SimpleDateFormat(dFormat, Locale.US);

    Date convertedDate;
    try {
        convertedDate = dateFormat.parse(dateString);
        Log.i("date", "convertedDate =  " + convertedDate);

    } catch (ParseException e) {
        e.printStackTrace();
        return null;
    }

    return convertedDate;

}
 }

当我试图像这样访问这个方法时:

 Utils.convertToDate("03-04-2012", "mm-dd-yyyy");

我得到一个空指针异常。

这怎么可能?

2 个答案:

答案 0 :(得分:4)

我的猜测是, 方法不是抛出异常 - 但是它返回null并且你正在使用返回值,如下所示:

Date date = Utils.convertToDate("03-04-2012", "mm-dd-yyyy");
System.out.println(date.toString());

这是有效吞咽异常和假装没有错的问题。请注意,您的格式应为“MM-dd-yyyy”而不是“mm-dd-yyyy”。另请注意,如果您在convertedDate块中声明了try并且刚刚返回它,那么您的代码会更简单,而不是在返回之前等待try块退出。

(说完了所有这些,我不会期望该代码抛出异常。它不会给你你想要的值,但实际解析应该没问题。 ..如果你能够制作一个简短但完整的程序来证明这个问题,那真的会有所帮助。)

答案 1 :(得分:0)

请改用:

Utils.convertToDate("03-04-2012", "MM-dd-yyyy");

因为mm代表分钟,而MM代表月份。