2013-11-03 5 views
1

저는 Java 과정을 공부하고 있으며이 설명서에서는 일반적인 방법으로이 메서드 헤더를 제공합니다. 불행히도, 설명이 부족합니다. 누군가이 타이핑에 대해 어떻게 설명 할 수 있습니까?이 일반 입력에 대한 간결한 설명이 필요합니다.

public static <T extends Object & Comparable <? super T>> T max(T a, T b) { 
... 
... 
... 
} 

고마워요!

지금까지 내가 아는 한,
<T extends Object & Comparable <? super T>> 

이와 동일합니다
+0

제네릭 typeparameter'T'는'Comparable'을 확장해야한다고 생각합니다. 'a'와'b'는'T' 타입입니다. 두 매개 변수가 서로 비교할 수있는 경우에만 최대 값을 얻는 것이 좋습니다. – Vertex

답변

1

:

<T extends Comparable<? super T>> 

그래서,이 말한다 : T 또는 무언가에 비교해야

T, 그 T보다 추상합니다.

MyClass implements Comparable<MyClass> 
MyClass implements Comparable<MySuperClass> 
MyClass implements Comparable<Object> 

그러나 허용하지 않습니다 : MyClass이 하나 같이 선언 된 경우

이 건설 힘 당신은 MyClass 같은 T를 선택

MyClass implements Comparable<String> 
MyClass implements Comparable<MyChildClass> 

을 감안할 때 그 : MyChildClass extends MyClass extends MySuperClass extends Object .

관련 문제