UPPA - Année universitaire 2015-2016 Département informatique Licence informatique 3e année [email protected] Examen de 2e session – TOO Vous n'avez droit à AUCUN document - Répondez sur cette feuille Soit le programme Java présenté en fin de page. Question 1 (6 points) Comparable<T> est une entité prédéfinie de la librairie Java utilisée pour définir Etudiant_L3_info. Cette entité est1 : Une annotation Une classe Une interface Une classe abstraite Une interface finale Un type générique Une méthode générique Question 2 (6 points) : bien que le programme fonctionne ('2' est affiché à la dernière instruction du programme), montrez où se trouve la faille principale du programme (indiquez clairement l’endroit en le surlignant ou l’encadrant) et comment y remédier. Question 3 (8 points) : après quelques recherches sur Internet, on apprend que la classe String de Java implémente Comparable<String>. Proposez une solution pour (encore mieux) remédier à la faille identifiée dans la Question 2. class Etudiant_L3_info implements Comparable<Etudiant_L3_info> { private String _numero_etudiant_UPPA; public Etudiant_L3_info(String numero_etudiant_UPPA) { _numero_etudiant_UPPA = numero_etudiant_UPPA; } public int compareTo(Etudiant_L3_info e) { // On teste si 2 chaînes de caractères sont égales : if (this._numero_etudiant_UPPA == e._numero_etudiant_UPPA) { return 0; } // On teste si la chaîne de caractères 'this._numero_etudiant_UPPA' est avant 'e._numero_etudiant_UPPA' dans l'ordre alphabétique : if (String.CASE_INSENSITIVE_ORDER.compare(this._numero_etudiant_UPPA, e._numero_etudiant_UPPA) < 0) { return -1; } return 1; } } public class Examen { public static void main(String[] args) { Etudiant_L3_info Bruno = new Etudiant_L3_info("MC2"); Etudiant_L3_info Franck = new Etudiant_L3_info("PREx1"); java.util.TreeMap<Etudiant_L3_info, Integer> notes_TOO_2_session_2016 = new java.util.TreeMap<>(); 1 Attention, plusieurs cases peuvent être cochées voire zéro. notes_TOO_2_session_2016.put(Bruno, 18); notes_TOO_2_session_2016.put(Franck, 2); System.out.println(notes_TOO_2_session_2016.size()); // '2' est affiché } } Question 2, code corrigeant la faille identifiée : Question 3, code corrigeant la faille identifiée :