Przechodzę przez wprowadzenie do MongoDB dla java. Istnieje przykładowy kod do pobierania wszystkich dokumentów z kolekcji. Kod działa, ale uważam, że jest trochę ... niepewny z braku lepszego słowa. Zastanawiam się, czy jest jakiś konkretny powód, który sprawia, że jest to konieczne. Podany przykład jest:Składnia Java z MongoDB
FindIterable<Document> iterable = db.getCollection("restaurants").find();
iterable.forEach(new Block<Document>() {
@Override
public void apply(final Document document) {
System.out.println(document);
}
});
Czy istnieje jakiś powód instancja Block
musi być tworzone w każdej iteracji forEach
w powyższym przykładzie? Dlaczego nie coś trochę bardziej proste jak:
FindIterable<Document> iterable = db.getCollection("restaurants").find();
for (Document document : iterable) {
System.out.println(document);
}
odjazdu ten post, to wyjaśnia, w jaki sposób można uzyskać rozwiązanie, które chcesz, https: // grupy .google.com/forum/#! topic/mongodb-user/pcVX84PPwM0 – faljbour
@faljbour - To nie odpowiada na moje pytanie. Ten wątek dotyczy zmian API z jednej wersji Mongo na inną. Mianowicie, nie omawia ona instancji instancji 'Block' w pętli forEach. – Hal50000
@ Hal50000 Myślę, że istnieje tylko jeden obiekt anonimowej klasy implementującej blok, który jest tworzony jako parametr metody iterable.forEach(). –
Hongfei