2017-03-28 3 views
-2

次のコードは、現在の日付を出力します。 null参照が渡された場合、Joda DateTime APIにnullが返されるような方法はありませんか。 ありがとうございました。なぜ新しい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)を有しています。 nullを渡すと、どちらが意味するのか不明なので、コンパイラはエラーを返します。

new DateTime(date.getDate())を使用すると、実行時の値はnullになりますが、コンパイラは呼び出すコンストラクタ(詳細は何もないのでObject paramを持つもの)を判断できます。

nullパラメータを使用してDateTime(Object)constructorを呼び出すと、現在の日付/時刻が表示されます。

関連する問題