He estado buscando en el 'tanto' y 'y' métodos en el org.hamcrest.core.CombinableMatcher en hamcrest 1.2Hamcrest CombinableMatcher - Método Genérico no se compilará
Por alguna razón, no puedo 't obtener lo siguiente para compilar
@Test
public void testBoth() {
String HELLO = "hello";
String THERE = "there";
assertThat("hello there", both(containsString(HELLO)).and(containsString(THERE)));
}
el mensaje de compilación que se ve es
and(org.hamcrest.Matcher<? super java.lang.Object>) in org.hamcrest.core.CombinableMatcher<java.lang.Object> cannot be applied to (org.hamcrest.Matcher<java.lang.String>)
Si especifico el parámetro de tipo explícitamente para el método, funciona
@Test
public void testBoth() {
String HELLO = "hello";
String THERE = "there";
Assert.assertThat("hello there", CombinableMatcher.<String>
both(containsString(HELLO)).and(containsString(THERE)));
}
Aunque esto no es tan agradable.
¿Alguien puede decirme por qué el compilador no puede entender los tipos aquí? No puedo creer que este sea el comportamiento esperado en este caso.
Gracias!
+1 Thanks much much :) –