Javaの8言語仕様はannotation type elementsの議論で述べている:Java言語仕様:注釈型のメソッドの戻り値の型として「クラスの呼び出し」
注釈型で宣言されたメソッドの戻り値の型
...クラスまたはクラスの呼び出し(§4.5)
「クラスの呼び出し」を意味するもの:以下のいずれかの 、コンパイル時エラーが発生しなければなりませんか?ちょうどClass<Number>
のようなもの、それ以上のもの?
Javaの8言語仕様はannotation type elementsの議論で述べている:Java言語仕様:注釈型のメソッドの戻り値の型として「クラスの呼び出し」
注釈型で宣言されたメソッドの戻り値の型
...クラスまたはクラスの呼び出し(§4.5)
「クラスの呼び出し」を意味するもの:以下のいずれかの 、コンパイル時エラーが発生しなければなりませんか?ちょうどClass<Number>
のようなもの、それ以上のもの?
はい、そうです。この用語は混乱し、まれにしか使われていないため、JSLのどこにも見当たりません。あなたのコード内からジェネリックBox
クラスを参照するには
、あなたが Integerなど、いくつかの具体的な 値で
T
を置き換えジェネリック型の呼び出しを、実行する必要があります:それはしかし、a tutorialであるBox<Integer> integerBox;
ジェネリック型呼び出しは、 通常のメソッド呼び出しと似ていると考えることができますが、 メソッドに引数を渡す代わりに、この引数に
Integer
という型引数を渡していますase -Box
クラスそのもの。型パラメータと型引数用語: 多くの開発者は、用語「タイプのパラメータ」と「型引数」は互換 を使用しますが、これらの用語は同じではありません。コーディング時には、 の1つは、パラメータ化された型を作成するために型引数を提供します。 したがって、
Foo<T>
のT
は型パラメータであり、Foo<String> f
のStringが型引数です。このレッスンでは、これらの用語を使用するときにこの定義 を確認します。他の変数宣言と同様に、このコードは実際には という新しいオブジェクトを作成しません。
Box
integerBox
が を「Box
」のInteger
という「Box<Integer>
」と読み替えるだけであると宣言します。ジェネリック型の呼び出しは、一般に、パラメータ化された 型と呼ばれます。