最初の<T>
が次のJavaコード行でどのようなものであるかを知りたいと思います。私はジェネリックスに関するいくつかのチュートリアルを読んだが、例のどれもがメソッド名の前に2つのジェネリックを持っていない。ありがとう。Javaジェネリックのこの使用法の意味はなんですか?
public <T> Provider<T> scope(Key<T> key, Provider<T> unscoped);
最初の<T>
が次のJavaコード行でどのようなものであるかを知りたいと思います。私はジェネリックスに関するいくつかのチュートリアルを読んだが、例のどれもがメソッド名の前に2つのジェネリックを持っていない。ありがとう。Javaジェネリックのこの使用法の意味はなんですか?
public <T> Provider<T> scope(Key<T> key, Provider<T> unscoped);
最初<T>
すなわち、それはメソッドがジェネリックであり、型パラメータT
を有することを言い、実際の型パラメータの宣言です。
第2の<T>
は、単にメソッドの戻り値の型の一部です。つまり、このメソッドはProvider<T>
を返します。
最初の<T>
が省略された場合、T
はタイプの認識された識別子/名前ではないため、戻りタイプProvider<T>
は無効となります。 T
は、最初に<T>
がそのように導入されたため、型として認識されます。
まだ私は方法の署名の最初
したがって、メソッドが2つ以上の型パラメータ、たとえばT2を使用すると、このように見えますか? '公共
号;' –
はい、メソッドシグネチャのジェネリックも理解できません。 – MJM