공식 Java JDK1.7 가이드에서이 인용문을 얻었지만 어떻게 작동하는지 이해할 수 없습니다. 아무도 설명 할 수 있을까요? 즉, 다이아몬드가 빈 문자열을 전달할 때 어떻게 다이아몬드가 정수 유형을 추정합니까? 이 예에서 이 다이아몬드 표기법에 대한 설명?
는, 컴파일러는 일반 MyClass 클래스의, 공식 형식 매개 변수, X의 형 정수를 유추합니다. 형식을 유추합니다. 일반 클래스의 생성자의 형식 형식 매개 변수 T에 대한 문자열입니다.MyClass<Integer> myObject = new MyClass<>("");
나는 MyClass 부분을 이해하고 "
MyClass (S arg)"부분을 이해하지만 System.out.println (arg); 어떻게 든 "T"유형과 관련이 있습니다. "반환 정수"유형이 필요하지 않습니까? – djangofan@ djangofan 예. 차이점은 범위에 있습니다. 'T'의 범위는 전체 클래스 (모든 비 정적 멤버들)입니다 만,'S '의 범위는 단지 생성자입니다. –
@djangofan 생성자가 아무 것도 반환하지 않습니다. 작업은 객체를 초기화하는 것입니다. 내부적으로 생성자는 반환 형식이'void' 인 인스턴스 메서드로 변환됩니다. –