Bonjour à vous,
j'essaie d’appeler une certaine méthode en fonction de son nom et de ses paramètres.
Donc je récupère les entrés de l'utilisateur et je regarde les arguments passés sous forme de commande.
Le problème vient au moment où l'argument est un int, j'ai un:
java.lang.IllegalArgumentException: argument type mismatch
Pourtant si l'argument est un String j'ai pas de problème:

Ma méthode:
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
public void exec(String command){
		String[] commandSplitted = command.split(" ");
		Object[] arg = {};
		String method = null;
		for(String keys : commands.keySet()){
			Integer diff = 0;
			String[] keysSplitted = keys.split(" ");
			if(keys.contains("#")){ // SI LA COMMAND CONTIENT UN ARGUMENT
				for(int k = 0; k < keys.length(); k++){
					if(keys.charAt(k) == '#'){
						diff++; // DETERMINATION DU NOMBRE DARGUMENT
					}
				}
			}
			boolean same = true;
			for(int i = 0; i < commandSplitted.length-diff; i++){
				if(commandSplitted.length-diff <= keysSplitted.length){
					if(!keysSplitted[i].equals(commandSplitted[i])){
						same = false; // COMMANDE USER NE CORRESPOND PAS A CELLE INDEX
					}
				}
			}
			if(same && commandSplitted.length == keysSplitted.length){ // BONNE COMMANDE
				if(diff > 0){ // SI ARGUMENT CREATION DU TABLEAU DE PARAMETRE
					arg = new Object[diff];
					for(int d = 0; d < diff; d++){
						arg[d] = commandSplitted[commandSplitted.length-d-1];
					}
				}
				method = commands.get(keys); // ACCES AU NOM DE LA METHOD
				break;
			}
 
		}
		if(method != null){
			for(int d = 0; d < server.getClass().getMethods().length; d++){
				if(server.getClass().getMethods()[d].getName().equals(method)){
					try {
						server.getClass().getMethods()[d].invoke(server, arg); // ERREUR ICI SI ARGUMENT ENTIER
					} catch (IllegalAccessException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (IllegalArgumentException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (InvocationTargetException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (SecurityException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}
		}else{
			ServerSessionMumble.logger.warning("bad command !");
		}
	}
Merci d'avance de vos réponses