Quel equivalent en Java pour remplacer les pointeurs de fonction du C?
1 réponse
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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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+
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);
}
}
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); } }