2010-07-30 4 views

Répondre

7

Par une combinaison de types anonymes, subclassing et le fait que Java ne supprime pas complètement toutes les déclarations génériques. Si vous regardez attentivement le TypeLiteral a un constructeur protégé ainsi vous employez un {} supplémentaire en construisant un nouveau qui crée une sous-classe anonyme de TypeLiteral.

Dans Java déclarations génériques sont conservés sur les déclarations de classe et méthode, donc si j'écris ceci.

public abstract class Class1<T> 
{ 
} 

public class Class2 extends Class1<Integer> 
{ 
} 

Je peux réellement écrire du code dans Class1 qui peut comprendre que son propre type générique est entier si Classe2 était la sous-classe.

Vérifiez la API java.lang.Class pour les méthodes appropriées (ils ont générique dans le nom).