私はすぐに答えを探しましたが、正確な検索パラメーターを見つけることができませんでした。
私は自分でJavaを教えていますが、特定の構文の意味を見つけることができないようです。
public class Node<E>{
E elem;
Node<E> next, previous;
}
<E>
意味しますか?私は、矢印ブレースがベクトルに関係していることを漠然と覚えていますが、上記のコードに基づいて、列挙に関係していると感じています。
どんな支援や説明も大歓迎です。ありがとうございました。
これらは Generics と呼ばれます。
一般に、これらは、クラス、インターフェース、およびメソッドを定義するときにtypes(クラスおよびインターフェース)がパラメーターになることを可能にします。
Javaのチュートリアルから次のように、ジェネリックを使用すると、非ジェネリックコードを使用するよりも多くの利点があります。
コンパイル時のより強力な型チェック。Javaコンパイラは、汎用コードに強力な型チェックを適用し、コードが型安全性に違反する場合はエラーを発行します。コンパイル時エラーの修正は、見つけにくいランタイムエラーの修正よりも簡単です。
例えば:
// without Generics
List list = new ArrayList();
list.add("hello");
// With Generics
List<Integer> list = new ArrayList<Integer>();
list.add("hello"); // will not compile
ジェネリックアルゴリズムを実装するためのプログラマーの有効化.
キャストの排除
たとえば、ジェネリックのない次のコードスニペットではキャストが必要です。
List list = new ArrayList();
list.add("hello");
String s = (String) list.get(0);
ジェネリックを使用するように書き直された場合、コードはキャストを必要としません。
List<String> list = new ArrayList<String>();
list.add("hello");
String s = list.get(0); // no cast
ここに <E>
は、Nodeクラスの型パラメーターを示します。型パラメーターは、任意の型(String、Integer、Employeeなど)を参照できることを定義します。 Javaジェネリックには、次のような型パラメーターの命名規則があります。
K-キー
N-番号
V-値
たとえば、次のシーンを取ります
public class Node<E>{
E elem;
Node<E> next, previous;
}
class Test{
Node<String> obj = new Node<>();
}
上記のscenerioでは、バックグラウンドで、Nodeクラス「E」はStringタイプを参照し、クラスは次のようになります
public class Node<String>{
String elem;
Node<String> next,previous;
}
Stringだけでなく、Integer、Character、Employeeなどを型パラメーターとして使用することもできます。
インターフェイス、メソッド、コンストラクターでもジェネリックを使用できます。
ジェネリックの詳細については、次をご覧ください。
https://www.journaldev.com/1663/Java-generics-example-method-class-interfacehttps://www.javatpoint.com/generics-in-Java
ノードは「ジェネリック」クラスを意味します。
参照: http://docs.Oracle.com/javase/tutorial/Java/generics/types.html
これは、Javaジェネリック型を示す構文方法です。本質的には、これはNodeすべての型を取ることができるオブジェクトである可能性があることを意味します。
あなたは this をチェックして、Java generics