Il ya une liste de tâches qui sont sensibles au temps (mais "temps" dans ce cas est arbitraire à ce qu'un autre programme me dit - c'est plus comme "ticks" plutôt que le temps). Cependant, je ne veux pas que ces méthodes soient évaluées immédiatement. Je veux qu'on s'exécute après que l'autre a fini. J'utilise une liste liée pour ma file d'attente, mais je ne suis pas vraiment sûr comment/si je peux accéder aux méthodes réelles dans une classe sans les évaluer immédiatement.Comment mettre en file d'attente et appeler des méthodes réelles (plutôt qu'éval immédiatement) dans Java?
Le code ressemblerait à quelque chose comme ...
LinkedList<Method> l = new LinkedList<Method>();
l.add(this.move(4));
l.add(this.read());
l.removeFirst().call();
//wait 80 ticks
l.removeFirst().call();
move(4)
exécuterait immédiatement, puis 80 tiques plus tard, je le supprimer de la liste et d'appeler this.read()
qui serait alors exécuté. Je suppose que cela a quelque chose à voir avec les cours de réflexion, et j'ai un peu fourré, mais je n'arrive pas à faire quoi que ce soit pour travailler, ou faire ce que je veux. Si seulement je pouvais utiliser des pointeurs ...
Pour clarifier: Ces commandes seront appelées par une autre classe qui ne connaît rien au timing, c'est pourquoi cette classe doit le gérer. Il appellera simplement des méthodes qui devraient être exécutées en séquence. Certaines méthodes ne retournent rien mais changent d'état.
C'est génial! Merci! Juste par curiosité, savez-vous ce qui est le plus rapide à l'exécution - les classes internes, ou les bibliothèques de réflexion? – nathas
Je ne sais pas, mais je pense que la réflexion serait plus lente. Fouettez un cas de test pour être sûr. Aller avec la solution qui est la plus propre à moins que la performance est critique. Je n'ai pas testé ce que j'ai écrit dans ma réponse, c'est de mémoire, mais c'est presque correct. –
Fera, merci encore pour votre aide. – nathas