コードでジェネリック クラスをインスタンス化するときは、次のようにすると常に教えられてきました。
ArrayList<String> a = new ArrayList<String>();
しかし、私がEclipseで作業しているときは、常にこれにオートコンプリートします:
ArrayList<String> a = new ArrayList <>();
これら2つのステートメントに違いはありますか?
コードでジェネリック クラスをインスタンス化するときは、次のようにすると常に教えられてきました。
ArrayList<String> a = new ArrayList<String>();
しかし、私がEclipseで作業しているときは、常にこれにオートコンプリートします:
ArrayList<String> a = new ArrayList <>();
これら2つのステートメントに違いはありますか?
後者は、Java 7の単なるショートカット構文(型推論として知られています)です。
詳細については、ジェネリックインスタンス作成の型推論を参照してください。
ArrayList<String> a = new ArrayList <>();
この場合、型推論が適用されます。したがって、コンストラクターの呼び出し中にパラメーター化された型を明示的に宣言する必要はありません。