<T> T
대 T
의 차이점은 무엇입니까?
<T> T
은 없습니다. <T>
은 반환 형식의 일부가 아닙니다. 이것은 유형 매개 변수를 나타내는 별도의 것입니다. (당신은 또한 public <T> void ...
을 가질 수 있습니다.) 버전에서
을 <T>
와 함께, 당신은 형식 매개 변수를 참조하는 방법의 유형 매개 변수 및 인수에 T
및 반환 형으로 T
을 선언하고 있습니다. <T>
없는 버전에서
, 당신은 방법의 유형 매개 변수로
T
를 선언
하지은, 그래서 그것은 대부분 포함하는 클래스의 형식 매개 변수 또는 다른 포함하는 범위입니다. (또는 다른 사람이 실제 클래스 또는 인터페이스 이름을
T
로 지정했을 수 있습니다.이 경우 대화 상대에게 알려야합니다.)
두 버전이 모두 컴파일되면 두 번째 버전이 원하는 버전 일 수 있습니다. 클래스의 유형 매개 변수 T
을 사용하는 것입니다. 숨기는 새 매개 변수를 추가하는 것이 아닙니다. 클래스의 유형 매개 변수와 관련없는 새로운 유형 매개 변수가 실제로 필요한 경우에는 혼란을 피하기 위해 새 이름을 사용해야합니다.
'class T { T T (T T) {return T; }}' –
ZhongYu
@ zhong.j.yu 당신의 요점 은요? – EJP