2
4

5 に答える 5

3

定義は、それがを拡張または実装するタイプであること<S extends CharSequence>を意味します。SCharSequence

Sその前後の存在に注意してくださいfoo。これは、をfoo拡張または実装する型を返しCharSequence、同じ型の引数を受け入れることを意味します。

于 2011-11-27T15:43:47.693 に答える
1

つまり、メソッドfooはCharSequence(またはそのサブクラスまたは実装クラス)をパラメーターとして受け取り、戻り値と同じ型を返します。

たとえば、次のようなメソッドを呼び出すことができます

CharSequence s = ...
CharSequence result = foo(s);

また

String s = ...
String result = foo(s);

また

StringBuffer s = ...
StringBuffer result = foo(s);

ただし、不一致の戻り値とパラメーターのタイプを使用することはできません。これらは大丈夫ではありません:

String s = ...
StringBuffer result = foo(s);

また

StringBuffer s = ...
String result = foo(s);
于 2011-11-27T15:46:50.257 に答える
0

次の行は次のとおりです。メソッドfooは、パラメータとしてタイプのオブジェクトを受け取り、extendsSを指定すると、タイプSのオブジェクトを返します。たとえば、StringBuilder(CharSequenceを拡張)をこのコンテキストに置くと、次のようになります。SCharSequence

public StringBuilder foo (StringBuilder s) 
于 2011-11-27T15:47:42.340 に答える
0

<S extends CharSequence> リターンタイプの一部ではありません。ジェネリックメソッドに型パラメーターを導入しますfoo。ここでSは、で囲まれた型パラメータ(上)として紹介されていますCharSequencefooタイプのパラメータを取りS、同じものを返します。

于 2011-11-27T15:48:25.667 に答える
0

S foo(S s)は、fooメソッドが 型のパラメーターを取り、 Sを返すことを意味しますS

また、メソッドfooは、それを使用できるタイプを定義しています: S(テンプレート化された結果) は のサブクラスですCharSequence

たとえば、次のように呼び出すことができます。

foo("example")

そして、それは文字列を返します(Stringは のサブクラスであるため有効ですCharSequence

そして、この特定の実装は、すべての場合に null を返します。

于 2011-11-27T15:46:11.670 に答える