He la siguiente clase genérica:genéricos de Java error de compilación
public class GenericClass<E,T extends Comparable<T>>
{
public static <E, T extends Comparable<T>> GenericClass<E, T> create()
{
return new GenericClass<E, T>();
}
private GenericClass()
{
}
}
Y así es como simplemente lo uso:
GenericClass<MyClass, Double> set = GenericClass.create();
Eclipse compilación no muestra ningún error, sin embargo - la construcción con la hormiga ofrece el siguiente error:
MyClass.java:19: incompatible types; no instance(s) of type variable(s) E,T exist so that GenericClass<E,T> conforms to GenericClass<MyClass,java.lang.Double>
[javac] found : <E,T>GenericClass<E,T>
[javac] required: GenericClass<MyClass,java.lang.Double>
[javac] GenericClass<MyClass, Double> set = GenericClass.create();
Gracias!
Y SortedSetByDoubleValue es ...? –
Solucionado ... Cambié los nombres de las clases por simplicidad – duduamar
Mi sugerencia es no utilizar los mismos nombres para los tipos genéricos en el método estático create y la clase. Aunque es técnicamente legal, podría llevar a cometer algunos errores locos. Sugeriría encarecidamente reemplazar E, T con E2 y T2 (o lo que sea) en toda la definición de create(). –