Java Generics를 사용할 때
다음 코드 조각을 고려하세요.
Map<String, Class<? extends Serializable>> expected = null; Map<String, Class<java.util.Date>> result = null; assertThat(result, is(expected));
이 코드는 유형 불일치로 인해 컴파일에 실패합니다. assertThat 메서드 시그니처를 으로 수정하면 컴파일 오류가 해결됩니다. 이를 통해 메소드는 결과 유형에 맞는 Matcher를 허용하여 유형 안전성을 보장합니다. Matcher를 사용하여 T> 큰 단점을 제공하지 않습니다. 이는 호환 가능한 Matcher가 제공되도록 보장하여 일치하지 않는 유형으로 인해 발생할 수 있는 런타임 예외를 방지합니다. assertThat 메소드의 Generics를 사용하면 제공된 Matcher가 일치하는지 확인하기 위한 유형 검사가 가능합니다. 결과 유형에. Matcher 클래스에는 제네릭이 필요하지 않지만 제네릭을 사용하면 유형 안전성을 강화하고 잠재적인 오류를 방지하는 데 도움이 됩니다.Matcher로 변경 T>
public static <T> void assertThat(T result, Matcher<? extends T> matcher)
Matcher 사용의 단점 T>를 확장합니까?
assertThat Generics의 목적
위 내용은 Java Generics, 특히 `assertThat` 메소드에서 ``를 사용하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!