2014-04-12 3 views
2

JLS 7에서 다음 문장을 읽었습니다.Java 언어 사양의 정적 메서드 및 형식 매개 변수

클래스 메서드의 머리글 또는 본문에 주위에있는 선언의 형식 매개 변수 이름을 사용하면 컴파일 타임 오류가 발생합니다.

의미를 설명하십시오.

+1

과 같은 작업을 수행 할 수 있습니다. 그렇지 않으면 컨텍스트를 알기가 어렵습니다. –

+0

공유 할 수없는 사무실에서 사본을 사용할 수 있습니다. 이 문장은 메소드의 정적 수정자가 설명되는 섹션에 나타납니다. –

+0

http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html point 8.4.3.2 –

답변

5

그것은 당신이 당신은 정적 메서드의

class Test<T> { 
    static <T> void f(T a) { 
    } 
} 

일반적인 유형의 클래스 또는 다른 방법의 일반적인 유형의 독립해야 할

class Test<T> { 
    static void f(T a) { 
    } 
} 

을 할 수 없음을 의미합니다.

그래서 당신도 여기 JLS의 링크를 추가

class Test { 
    static <A, B, C> void f(A a, B b, C c) { 
    } 
} 
+0

Paul, 해명 해줘서 고마워. 이것은 클래스에서 사용하는 것보다 정적 메서드에서 다른 제네릭 형식을 사용할 수 있다는 것을 의미합니까? –

+0

@PankajDwivedi, 예, 업데이트 된 답변을 참조하십시오. –

+0

고마워요, Paul! –