7
Khi nào Java generic yêu cầu <? mở rộng T> thay vì <T> và có bất kỳ nhược điểm nào của việc chuyển đổi không?
Cho ví dụ sau (sử dụng JUnit với bộ so khớp Hamcrest): Map<String, Class<? extends Serializable>> expected = null; Map<String, Class<java.util.Date>> result = null; assertThat(result, is(expected)); Điều này không biên dịch với assertThatchữ ký phương thức JUnit của: public static <T> void assertThat(T actual, Matcher<T> matcher) Thông báo lỗi trình …