J'ai un petit problème de casting :

Une methode de la persistance hibernate (criteria.list()) renvoi une liste d'object.

Or moi je récupère des User, mais je ne sait pas a quel moment caster ces object en User ?

En effet, je désire utiliser la boucle foreach du jdk 1.5 ainsi que les type generiques. Impossible de placer le cast quelque part sans avoir un warning

Donc nous avons la methode recuperant cette liste
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
public List getUserList() {
		Criteria criteria = session.createCriteria(User.class);
		List results = criteria.list();//Tester le cast ici avec les type generic dans le return etc ... warning
		return results;
	}
Et la methode qui exploite cette liste :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public void execute(JobExecutionContext arg0) throws JobExecutionException {
 
		java.util.List <User>users = new Vector<User>() ;
		try {
			accessManager.startSession();
			accessManager.startTransaction();
			users = (java.util.List<User>) accessManager.getUserList(); //warning
			for(User us : users) //Warning si cast ici egalement
				us.setQuotaCour(0);
			accessManager.commit();
		}
		catch (IllegalArgumentException e) {
			e.printStackTrace(); //Avertir du pb le fichier ne peut être supprimé
		} 
 
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			accessManager.closeSession(); //Quoi qu'il arrive, on clos la session
		}	
	}
Le warning :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Type safety : the cast from List to List<User> is actually checking against the erased type List
Ais-je loupé quelque chose ?