【发布时间】:2020-10-12 18:27:05
【问题描述】:
使用Java MongoDB Driver 4.0.4、OpenJDK 11 并按照MongoDB docs 上的示例,使用findIterable.forEach(printBlock); 时看到编译错误
看起来com.mongodb.Block http://mongodb.github.io/mongo-java-driver/4.0/driver/tutorials/aggregation/ 也没有被弃用。
public String testLocal() {
MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
MongoDatabase database = mongoClient.getDatabase("cord");
MongoCollection<Document> collection1 = database.getCollection("papers");
FindIterable<Document> findIterable = collection1.find(new Document());
findIterable.forEach(printBlock);
}
public Block<Document> printBlock = new Block<Document>() {
@Override
public void apply(final Document document) {
System.out.println(document.toJson());
}
};
错误:
[ERROR] /Projects/cord/src/main/java/com/engg/java/cord/services/PrimaryService_Local.java:
[24,30] incompatible types: com.mongodb.Block<org.bson.Document> cannot be converted
to java.util.function.Consumer<? super org.bson.Document>
【问题讨论】:
-
也许您需要将
findIterable.forEach(printBlock);改为findIterable.forEach(doc -> printBlock.apply(doc));?
标签: java mongodb mongodb-java