2016-08-19 2 views
3

Javaの8言語仕様はannotation type elementsの議論で述べている:Java言語仕様:注釈型のメソッドの戻り値の型として「クラスの呼び出し」

注釈型で宣言されたメソッドの戻り値の型

...クラスまたはクラスの呼び出し(§4.5)

「クラスの呼び出し」を意味するもの:以下のいずれかの 、コンパイル時エラーが発生しなければなりませんか?ちょうどClass<Number>のようなもの、それ以上のもの?

答えて

1

はい、そうです。この用語は混乱し、まれにしか使われていないため、JSLのどこにも見当たりません。あなたのコード内からジェネリックBoxクラスを参照するには

、あなたが Integerなど、いくつかの具体的な 値でTを置き換えジェネリック型の呼び出しを、実行する必要があります:それはしかし、a tutorialである

Box<Integer> integerBox; 

ジェネリック型呼び出しは、 通常のメソッド呼び出しと似ていると考えることができますが、 メソッドに引数を渡す代わりに、この引数にIntegerという型引数を渡していますase - Boxクラスそのもの。

型パラメータと型引数用語: 多くの開発者は、用語「タイプのパラメータ」と「型引数」は互換 を使用しますが、これらの用語は同じではありません。コーディング時には、 の1つは、パラメータ化された型を作成するために型引数を提供します。 したがって、Foo<T>Tは型パラメータであり、 Foo<String> fのStringが型引数です。このレッスンでは、これらの用語を使用するときにこの定義 を確認します。

他の変数宣言と同様に、このコードは実際には という新しいオブジェクトを作成しません。BoxintegerBoxが を「Box」のIntegerという「Box<Integer>」と読み替えるだけであると宣言します。

ジェネリック型の呼び出しは、一般に、パラメータ化された 型と呼ばれます。

関連する問題