Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Quel equivalent en Java pour remplacer les pointeurs de fonction du C?

1 réponse
Avatar
Funtix
Salut,
je commence tout juste a écrire mon premier programme en java. Et deja
je me heurte à un probleme! Comment fait on en java pour faire pareil
qu'en C avec les pointeurs de fonctions.
Pour ce que j'ai a faire il ne s'agit pas de gerer des evenements a la
maniere des callbacks.

Je voudrais associer dans une table (HashMap) un nom commande à une
action. En d'autres termes, associer un string à une methode d'un objet.

Comment je peux faire?

merci pour l'aide
bye+

1 réponse

Avatar
Marc Petit-Huguenin
Funtix wrote:
Salut,
je commence tout juste a écrire mon premier programme en java. Et deja
je me heurte à un probleme! Comment fait on en java pour faire pareil
qu'en C avec les pointeurs de fonctions.
Pour ce que j'ai a faire il ne s'agit pas de gerer des evenements a la
maniere des callbacks.

Je voudrais associer dans une table (HashMap) un nom commande à une
action. En d'autres termes, associer un string à une methode d'un objet.

Comment je peux faire?


public class Context {
private interface Action {
public void execute(Context context);
}

private static final HashMap COMMANDS;

static {
HashMap map = new HashMap();
map.put("action1", new Action() {
public void execute(Context context) {
// execute action1 on context
}
};
map.put("action2", new Action() {
public void execute(Context context) {
// execute action2 on context
}
};
COMMANDS = Collections.unmodifiableMap(map);
}

public synchronized void execute(String action) {
((Action)COMMANDS.get(action)).execute(this);
}
}


merci pour l'aide
bye+