2016-11-21 6 views
-1

キーワード「this」は、別のコンストラクタ内のコンストラクタを呼び出すために使用されることを理解しています。 NULLが使用されている理由を次のようにコンストラクタを呼び出すときは、次のコードでは、私は理解していない。ここでなぜそれがnullですか?

this(filename, null); 

は完全なコードです:

class Image { 
    Image(String filename) { 
     this(filename, null); 
     System.out.println("Image(String filename) called"); 
    } 

    Image(String filename, String imageType) { 
     System.out.println("Image(String filename, String imageType) called"); 
     if (filename != null) { 
      System.out.println("reading " + filename); 
      if (imageType != null) { 
       System.out.println("interpreting " + filename + " as storing a " + 
         imageType + " image"); 
      } 
     } 
     // Perform other initialization here. 
    } 
} 
+2

'imageType'が不明なためです。 –

+0

解決策が問題を解決する場合は、解決策(過去の質問すべてを含む)を受け入れることをお勧めします。解決策を受け入れていないユーザーが私をオフにします。 – user3437460

+0

ありがとうございます! –

答えて

0

これは既にコメントで示唆したが、あなたのました最初のコンストラクタはイメージタイプを知らないため、null以外のものは合理的に渡すことができません。 2番目のコンストラクタには、そのパラメータのためにnullを処理する機能が備わっているため、その結果として破損する危険はありません。

+0

を呼び出すためには、すべてのパラメータを渡す必要があるので、最初のコンストラクタにパラメータ型を指定しないでください。2番目のコンストラクタを呼び出すには、2番目のパラメータとして 'null'を渡す必要があります。 –

関連する問題