2017-03-28 27 views
-2

以下代碼輸出當前日期。如果傳遞null引用,Joda DateTime API中是否有任何方法返回null 感謝您的幫助。爲什麼new DateTime(nulll refrence)返回當前日期?

class MyDateExtractor{ 
     private Date date; 
     public Date getDate() { 
      return date; 
     } 
     public void setDate(Date date) { 
      this.date = date; 
     } 
    } 

    public class DateTimeTest { 
     @Test 
     public void testName() throws Exception { 
      MyDateExtractor date = new MyDateExtractor(); 
      System.out.println(new DateTime(date.getDate())); 
     } 
    } 
+0

你真的讀過錯誤嗎? – Kayaman

+0

構造函數總是創建並初始化您要求構造的對象。只有工廠方法可以選擇哪個(或是否)返回對象。 –

+0

在將它傳遞給構造函數之前,不能只檢查'date.getDate()'的值嗎? – Carcigenicate

回答

1

DateTime有(其中包括)構造函數DateTime(Chronology)DateTime(DateTimeZone)DateTime(Object)。如果你傳入一個空值,你不知道你是哪一個,編譯器給你一個錯誤。

如果您使用new DateTime(date.getDate()),則運行時值將爲空,但編譯器可以確定要調用的構造函數(帶有Object參數的構造函數,因爲沒有更具體的內容)。

使用空參數調用DateTime(Object)constructor會爲您提供當前日期/時間。

相關問題