2012-09-24 2 views
1

Supposes j'ai des méthodes comme celle-ci:Comment appeler plusieurs méthodes en utilisant une boucle en Java?

method1() 
method2() 
method3() 
method4() 
method5() 

Mais je ne veux pas appeler des méthodes de séquence:

obj.method1() 
obj.method2() 
obj.method3() 
obj.method4() 
obj.method5() 

Il est ennuyeux. Et si j'ajoute une nouvelle méthode: method6(), j'ai besoin d'ajouter le manuel: obj.method6()

C'est mieux si je peux les appeler en utilisant une boucle en Java. Quelqu'un peut-il me donner des suggestions?

Merci!

.

+4

réflexion utilisation. – Delta

+2

Avant cela, vérifiez si les méthodes pourraient être mieux nommées, et s'il serait plus simple d'écrire une méthode qui les appelle toutes. –

+0

Ne vaudrait-il pas mieux ajouter une méthode à votre 'obj' pour appeler la séquence de la méthode? (Je suppose que ce sont les vrais noms de méthodes.) –

Répondre

3

Essayez quelque chose comme:

for (int i=0;i<N;i++) { 
     try { 
     obj.getClass().getMethod("method"+i).invoke(obj); 
     } catch (Exception e) { 
     // give up 
     break; 
     } 
    } 
+2

ahh ... trop tard ;-) – gnomie

2
public static void callABunchOfMethods(Object obj, int count) throws Exception { 
    for (int i = 1; i <= count; i++) 
    obj.getClass().getMethod("method"+i).invoke(obj); 
} 
1

Je ne sais pas pourquoi vous avez utilisé comme Convetion de nommage pour vos méthodes. Si ce n'était pas seulement par exemple, vous devriez envisager de trouver une meilleure solution pour eux. Aujourd'hui cela pourrait être évident pour vous mais pour les adeptes de votre code pas vraiment. En ce qui concerne l'ajout manuel de method6 hypothétique. Je pense que l'ajout d'une ligne de code est plus important que de la réduire et de perdre la clarté du code.

Ma suggestion est que, vous devez utiliser le Facade pattern

Questions connexes