La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Réflexion et types génériques en Java

Présentations similaires


Présentation au sujet: "Réflexion et types génériques en Java"— Transcription de la présentation:

1 Réflexion et types génériques en Java
Aladyn 9 Novembre 2007

2 PLAN Approches. Implémentation de la généricité.
Modifications de l’API reflection en JAVA 5. C#: Une autre solution.

3 Approche1: obtenir un objet Class
Java 1.4 Javac -Xlint Java 5

4 Approche 2: L’instantiation d’un paramètre est impossible
B non évaluable NullPointerException

5 Approche 3: deux problèmes apparents
1. Les listes l1 et l2 partagent le même code 2. L’appel dynamique contourne la paramétrisation

6 Type erasure: où pourquoi tout disparait
Variable de type Plus grande borne ou Object Type paramètre Type régulier avant après

7 Nouveauté de l’API 1.5: l’interface Type
java.lang java.lang.reflect GenericDeclaration getTypeParameters() Type Class<T> getTypeParameters() getGenericType() ParameterizedType getActualTypeArguments() getOwnerType() getRawType() TypeVariable getBounds() getGenericDeclaration() getName() WildcardType getLowerBounds() getUpperBounds() GenericArrayType getGenericComponentType()

8 Utilisation d’objets Type: pour l’ajout sécurisé ?
Java.util.ArrayList E Java.util.List<T> T Renseignement redondant non récupérable depuis types

9 ajout sécurisé 2: Type est statique
[33,56] Même redondance: Type ne peut être utilisé en dynamique

10 .NET: un framework reflexif
FieldInfo getFields() GetModules() GetTypes() Type Assembly Module GetMethods() MethodeInfo GetConstructor() Constructor Info

11 C# : génériques ouverts/fermés
Assemblage: une seule classe générique Compilateur C# Program List<T> Exécution: Plusieurs classes génériques List<T> Program List<int> List<bool> List<double> Compilateur JIT

12 Conclusion 1.5 = 1.6 Généricité: un vrai changement, compatibilité croissante conservée. Utilisation statique des objets Type (analyseur de type). En .NET, une instanciation par paramètre générique.


Télécharger ppt "Réflexion et types génériques en Java"

Présentations similaires


Annonces Google