Il est possible de faire une méthode execute qu'une seule fois?
J'ai une boucle for et de structure comme ceci:
for(....)
....
....
if(isTrue)
... do something..
.. method to be executed once (doTrick) is declared outside for loop.
....endif
endfor
public void doTrick()
...
...
..end
Est-il possible qu'une méthode pour la boucle sera exécutée qu'une seule fois?
quelle est la différence?
Tous les bouchons implique que c'est un acronyme, qui elle ne l'est pas.
Ce n'est pas un acronyme mais un nom afin de ne pas écrire en majuscules
hmm eh bien, nous savions tous ce que je voulais dire donc il n'y a pas de différence, puisque James dire ..
Tous les bouchons implique que c'est un acronyme, qui elle ne l'est pas.
Ce n'est pas un acronyme mais un nom afin de ne pas écrire en majuscules
hmm eh bien, nous savions tous ce que je voulais dire donc il n'y a pas de différence, puisque James dire ..
OriginalL'auteur Gandalf StormCrow | 2010-04-19
Vous devez vous connecter pour publier un commentaire.
Sûr!..
Sans doute si l'alreadyExecuted va être une variable locale même si,
OriginalL'auteur Rosdi Kasim
Votre pouvez utiliser
AtomicBoolean
pour s'assurer que la tâche n'est appelée la première fois:Utilisation:
OriginalL'auteur Hover Ruan
Vous pouvez éviter la
if()
en utilisant cette astuce:-1 Pourquoi vous voulez éviter les si() ?
Pour élargir votre horizon 🙂
C'est pour un cas simple. Dès que les conditions deviennent plus complexes et vous avez besoin de plus qu'une "exécuter une fois" par boucle, cette astuce peut devenir beaucoup plus lisible puisque vous pouvez extraire du code de la boucle, à peu de frais.
Désolé, pas convaincu, si le code d'aller dans le si est compliqué ensuite de le déplacer dans une méthode privée, si la logique est devenue plus complexe, alors que l'op aurait besoin de refactoriser à ce point, sans doute aller en bas de la stratégie/méthode de modèle de route. De cette manière rend l'unité de test plus compliqué, et à l'aide d'un exécutable aurait développeurs à essayer de comprendre où filetage devient concernés.
OriginalL'auteur Aaron Digulla
Dans Java 8, vous pouvez effectivement le faire à l'aide automatique memoization comme décrit ici: Le faire en Java 8: Automatique memoization
Je vais vous avouer que memoization pourrait être considérée comme excessive pour un "exécuter en une seule fois" le scénario, mais c'est plutôt une alternative propre à certains décrites dans les réponses précédentes.
Par exemple:
OriginalL'auteur mkrufky
peut-être le mot-clé break est ce que vous avez besoin? Après l'exécution, vous l'appel de la méthode break; je suis désolé de ses pas 100% clair ce que vous voulez dire à partir de votre question.
Ont un look ici du soleil docs
OriginalL'auteur Paul Whelan
Un autre excès de solution:
En fonction de ce que vous voulez faire, il pourrait être possible d'utiliser un bloc d'initialisation statique.
Solution Simple:
Ou, au contraire, vous voulez juste pour exécuter la première partie de l'extérieur de la boucle:
OriginalL'auteur Mike
OriginalL'auteur Ranga Reddy
mon exemple de partir de mon application:
alors :
OriginalL'auteur Joolah