Javaのクラスにある <E> は何ですか

コーディング問題

Javaを選んでいると、SinglyLinkedListNode<E> のように <E> と書かれたコードが出てきます。これはジェネリクスの型パラメータです。

ジェネリクスとは

クラスを定義するときには型を決めず、実際に使うときに String や Integer などの型を決められる仕組みです。ダイヤモンド演算子 <> の中に大文字のアルファベットを入れて表します。

文字は何でも構いませんが、慣例として次のものがよく使われます。

  • T — Type、型そのもの
  • E — Element、要素
  • K — Key、キー
  • V — Value、値

連結リストの場合

SinglyLinkedListNode<E> は「クラスを定義した時点では決まっていないが、何かの型が1つ入る」という意味です。インスタンスを作るときに <Integer> のように指定します。

右辺の型はコンパイラが推論できる場合、<> だけに省略できます。

詳しく学ぶ

ジェネリクスはOOPコースで扱います。型パラメータの意味がつかめないうちは、まず Integer が入るものとして読み進めても構いません。

学習中のコードやエラーはAIに聞けます

書いたコードがなぜ動かないのか、エラーが何を指しているのかを、その場で質問できます。AIチャットとAIコードレビューは有料会員向けの機能です。

料金プランを見る

無料でもヒントと解答解説は利用できます。