nom de fonction passée comme paramètre
Bonjour,
je suis en train de développer une app dans laquel j'ai les deux méthodes suivantes mais en fait j'en ai une dizaine identiques:
Code:
1 2 3 4 5 6 7 8 9 10 11
| private boolean hasSegm(List<Reportparameters> repParams) {
boolean hasIt = false;
int i = 0;
while (repParams!=null && !hasIt && repParams.size() > 0 && i < repParams.size()){
Reportparameters param = repParams.get(i);
if (param.getHassegm())
hasIt = true;
i++;
}
return hasIt;
} |
Code:
1 2 3 4 5 6 7 8 9 10 11
| private boolean hasIndustries(List<Reportparameters> repParams) {
boolean hasIt = false;
int i = 0;
while (repParams!=null && !hasIt && repParams.size() > 0 && i < repParams.size()){
Reportparameters param = repParams.get(i);
if (param.getHasindustry())
hasIt = true;
i++;
}
return hasIt;
} |
comme on peut le remarquer la seule chose qui varie mis à part le nom de la méthode, c'est le nom de de la méthode qui est appelée à l'intérieur
à savoir param.getHassegm() dans la premiere et param.getHasindustry() dans la deuxième.
je me demande alors si il exite un moyen de faire une fonction générique qui prendrait un param supplémentaire qui serait le nom de la fonction qui sert de test
un truc du genre
Code:
1 2 3 4 5 6 7 8 9 10 11
| private boolean hasIt(List<Reportparameters> repParams, <?> maFunctionDeTest) {
boolean hasIt = false;
int i = 0;
while (repParams!=null && !hasIt && repParams.size() > 0 && i < repParams.size()){
Reportparameters param = repParams.get(i);
if ( eval (maFunctionDeTest) on param )
hasIt = true;
i++;
}
return hasIt;
} |
merci pour votre aide