Voici comment convertir du code avec la logique yield en équivalent Java. Cela peut nécessiter un certain effort mais au moins il n'est pas nécessaire d'utiliser une bibliothèque tierce (néanmoins, cela nécessite le support des lambdas) :
C# :
public IEnumerable Foo()
{
for (int i = 0; i < 5; i++)
{
yield return i;
}
}
Java :
public static Iterable foo() {
return () -> new Iterator<>() {
Integer counter = 0;
@Override
public boolean hasNext() {
return counter < 5;
}
@Override
public Integer next() {
return counter++;
}
};
}
6 votes
Je sais, je sais. Mais je pense que savoir plus de langues, c'est plus de puissance. De plus, le développement backend (que je fais) dans l'entreprise pour laquelle je travaille actuellement est fait en Java, donc je ne peux pas vraiment choisir le langage :(