29

java.util.Collections.maxの署名は次のようになります。

public static <T extends Object&Comparable <?スーパーT>>T max(コレクションコレクション);

私が理解していることから、それは基本的にTが java.lang.Objectjava.lang.Comparable <の両方でなければならないことを意味しますか?スーパーT>>

ただし、すべてのjava.lang.Comparablejava.lang.Objectであるため、上の署名と下の署名の違いは何ですか?:

public static <T extends Comparable <?スーパーT>>T max(コレクションコレクション);

4

1 に答える 1

31

バイナリ互換性を維持するには:ここで完全に説明されています。2番目のシグニチャは、実際にはメソッドの戻り型をに変更し、を返すComparableという一般性を失いObjectます。元の署名は両方を保持します。

于 2012-04-26T18:42:46.813 に答える