Juste une question rapide au sujet des bonnes pratiques de programmation,Programmation java propre, est-ce une mauvaise idée d'utiliser lambdas pour générer des paramètres d'entrée de méthode?
Les performances mises à part, à quel point une bonne/mauvaise idée pourrait-elle être quelque chose de ce genre? Je simplifie à l'excès le problème pour faire passer mon message, mais est-ce que c'est quelque chose comme ça?
public void methodWithInputString(String data) {
// do something with data
}
public void methodThatCallsTheAbove() {
methodWithInputString(
// lambda with no input and a string as output
(() -> {
if (this.conditionIsTrue)
return "Condition is true";
else
return "Condition is false";
}).apply();
);
}
L'alternative serait simplement:
public void methodThatCallsTheAbove() {
if (this.conditionIsTrue)
methodWithInputString("Condition is true");
else
methodWithInputString("Condition is false");
}
Je comprends que la seconde est l'approche évidente/correcte, mais dans une situation où l'utilisation du premier fait mon propre code est-il encore une chose absurde faire?
Si vous vous trouvez en utilisant un lambda dans la même méthode, il est défini, vous pouvez écrire une méthode à la place. – Moira
Bien sûr, * si * vous pensez que c'est plus propre dans certains cas. Mais l'exemple que vous avez donné est très mauvais. Tout d'abord, il ne peut pas compiler. Et, vous auriez pu utiliser '?:' – ZhongYu
La lisibilité souffre. Un nom de méthode est virtuellement auto-commentant. Un lambda vide a besoin d'un commentaire réel, et ne fournit pas de facilité de croissance. – Compass