var bulk = db.documents.initializeOrderedBulkOp(),
count = 0;
db.documents.find().forEach(function(doc) {
var last_modified = doc.services.sort(function(a,b) {
return a.last_modified < b.last_modified;
}).slice(-1)[0].last_modified;
bulk.find({ "_id": doc._id }).updateOne({
"$set": { "last_modified": last_modified }
});
count++;
if ( count % 1000 == 0 ) {
bulk.execute();
bulk = db.documents.initializeOrderedBulkOp();
}
});
if ( count % 1000 != 0 )
bulk.execute();
我期待测试(新GrandChild)应该给出编译错误。它是如何工作的?我是否理解错误的类型?
答案 0 :(得分:0)
由于GrandChild
扩展Child
,编译器在调用中选择了B
类型参数为Child
test(new GrandChild)
如果明确指定类型,则会出现预期的错误:
test[GrandChild](new GrandChild)
答案 1 :(得分:0)
B&gt;:Child表示B应该是Child的超类型,所有这些类都是Parent(Child和GrandChild),因为所有类都是从Parent扩展。