Quelle est la différence entre la transmission d'un paramètre générique d'une classe générique avec et sans son paramètre générique?Différence entre les paramètres génériques Java
Exemple:
simple classe générique:
public class Foo<T> { /*...*/ }
classe simple qui se prolongent classe simple générique définissant le paramètre générique à un certain type non pertinent:
public class FooFoo extends Foo<Type1> { /*...*/ }
Une autre classe générique
public class Bar<T> extends FooFoo { /*...*/ }
Notre classe de base en tant que paramètre générique besoin de quelque chose qui étend la classe Foo
public class TestFooClass<T extends Foo<?>> { /*...*/ }
Et la question, quelle est la déférence entre ces deux paramètres
public class BarTestOne extends TestFooClass<Bar> { /*...*/ }
public class BarTestTwo extends TestFooClass<Bar<?>> { /*...*/ }
Problème
Class<T> class = (Class<T>) ((Foo)getClass().getGenericSuperclass()).getActualTypeArguments()[0];
Dans le Le premier cas fonctionne dans le second cas.
Voir aussi http://stackoverflow.com/questions/2770321/what-is-a-raw-type-and-why-shouldnt-we-use-it – polygenelubricants