2012-02-19 2 views
6

첫 번째 <T>이 다음 Java 코드 행에서 무엇을 나타내는 지 알고 싶습니다. 제네릭에 대한 몇 가지 자습서를 읽었지 만 예제에는 메서드 이름 앞에 2 개의 제네릭이 없습니다. 감사.Java generics 사용의 의미는 무엇입니까?

public <T> Provider<T> scope(Key<T> key, Provider<T> unscoped); 
+0

예, 메소드 서명의 일반 사항을 이해하지 못합니다. – MJM

답변

13

<T> 실제 입력 매개 변수 선언이고, 즉 그것은 일반적인 방법이며, 입력 파라미터 T을 가지고 있다고 말한다.

두 번째 <T>은 메서드의 반환 형식의 일부일 뿐이므로이 메서드는 Provider<T>을 반환합니다.

첫 번째 <T>이 생략 된 경우 T은 유형의 인식 된 식별자/이름이 아니므로 반환 유형 Provider<T>이 유효하지 않습니다. T은 처음으로 <T>이 입력하기 때문에 형식으로 인식됩니다.

+0

여전히 방법 서명에 의 혜택을 알지 못합니다. – MJM

+0

그런데 메서드가 두 개 이상의 형식 매개 변수, 예를 들어 T2를 사용한 경우에는 다음과 같이 보일까요? '공공 제공 범위 (키 키, 범위가 지정되지 않은 제공자 , 일),'그것'공공 제공 범위 (키 키를 제공 범위가 지정되지 않은, T2 뭔가)과 같을 것이다 –

+3

번호;' –