私はJavaに比較的慣れていないので、コレクションフレームワークを始めたばかりです。ArrayList私は人々がそれを宣言する2つの方法に遭遇しました。たとえば、ArrayListof Strings を宣言するには:
List<String> l = new ArrayList<String>();
また
ArrayList<String> al = new ArrayList<String>();
これら2つのどちらを使用する必要があり、それらの違いは何ですか?
呼び出される実際のメソッドは実行時に決定されるため、呼び出されるメソッドはすべてArrayListクラスのみになりますが、最初の宣言は呼び出すことができるメソッドを制限します。
最初の方法は、「インターフェースへのコーディング」と呼ばれていると聞きました。任意のメソッドは変数を使用して呼び出されるため、インターフェイスlによって提供されるメソッドのみを呼び出すことができますが、2 番目の例では、クラスだけでなくクラスによって提供されるすべてのメソッド ( など) も呼び出すことができます。そもそも、なぜ人々は最初の宣言を使用するのでしょうか??ListListObjectfinalize()wait()