使用Java MongoDB 4.0.4驱动程序使用Block打印集合时发生编译错误
在使用OpenJDK 11时,并遵循上的示例,在使用FindTable.forEachprintBlock时看到编译错误 看起来com.mongodb.Block也没有被弃用使用Java MongoDB 4.0.4驱动程序使用Block打印集合时发生编译错误,java,mongodb,mongodb-java,Java,Mongodb,Mongodb Java,在使用OpenJDK 11时,并遵循上的示例,在使用FindTable.forEachprintBlock时看到编译错误 看起来com.mongodb.Block也没有被弃用 public String testLocal() { MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017"); MongoDatabase database = mongoClient.getData
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>
文件显然已经过时了。如果您查看javadocs中的FindItemerable 您将看到forEach继承自java.lang.Iterable,它将使用者作为参数,而不是块 因此,将您的打印块声明替换为:
public Consumer<Document> printBlock = document -> System.out.println(document.toJson());
。。。一切都会好起来。在和Mongodb支持的帮助下,添加工作代码块
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((Consumer<Document>) d -> System.out.println( d.toJson()));
}
或
或参照
也许您需要编写findItemerable.forEachprintBlock行;要查找可编辑的.forEachdoc->printBlock.applydoc;相反
public Consumer<Document> printBlock = document -> System.out.println(document.toJson());
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 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);
}
Consumer<Document> printBlock = new Consumer<Document>() {
public void accept(final Document doc) {
System.out.println(doc.toJson());
};
};