JodaTime tieneGenerics Hell - ¿Cómo paso un joda.DateTime a Hamcrest Matcher.greaterThan?
public final class DateTime extends BaseDateTime {...}
la que se abre camino hasta
public interface ReadableInstant extends Comparable<ReadableInstant>
Hamcrest tiene
public static <T extends java.lang.Comparable<T>> org.hamcrest.Matcher<? super T>
greaterThan(T value) {...}
Si intento
greaterThan(new DateTime());
cuando me siento un error de compilación (Eclipse gi ves más pista)
El método genérico greaterThan (T) de adaptadores de tipo no es aplicable para los argumentos (DateTime). El tipo DateTime inferido no es un sustituto válido para el parámetro acotada>
Estoy en lo cierto al pensar que la firma de greaterThan
debe ser en realidad
public static <T extends java.lang.Comparable<? super T>> org.hamcrest.Matcher<? super T>
greaterThan(T value)
? ¿Y hay una manera de encajar estos junto menos de fundición en el Comparable
crudo?
Véase también http://stackoverflow.com/questions/6452313/how-to-implement-a-generic-maxcomparable-a-comparable-b-function-in-java –
La [fuente actual de 'OrderingComparison'] (http://code.google.com/p/hamcrest/source/browse/trunk/hamcrest-java/hamcrest-library/src/main/java/org/hamcrest/number/OrderingComparison.java) tiene '> Matcher mayorThan (valor T) '. –
@DavidHarkness - Debo decir que estaba mirando 1.3.0RC1, pero ¿RC2 no solo cambia el tipo de devolución? Es el argumento que no es aceptado. –