[英]MongoDB Java-Driver: Cannot extend MongoDatabase
我在MongoDB Java應用程序上編碼。
我想從mongoClient創建每個數據庫的對象的集合(類型MongoDatabase)。 校驗
下一步:我想擴展MongoDatabase類型來為我自己編寫一些函數。 出現跟蹤錯誤: java.lang.ClassCastException:com.mongodb.MongoDatabaseImpl無法轉換為model.ownMongoDatabase
我不知道為什么,但是舊的Java驅動程序有一個DB-Class。 對Java驅動程序(版本3)進行了一些更改,現在將DB-Class的功能標記為已棄用。 現在,您必須使用MongoDatabase。 但是MongoDatabase是一個接口,因此沒有機會為我自己的課程擴展它嗎?
代碼段:
public class MongodbInstance extends com.mongodb.MongoClient {
private ArrayList<ownMongoDatabase > _mongodbDatabases = new ArrayList<ownMongoDatabase >();
private void buildMongodbDatabases(){
MongoCursor<String> iterator = this.listDatabaseNames().iterator(); // iterate through Databases
while(iterator.hasNext()){
this._mongodbDatabases.add((ownMongoDatabase) this.getDatabase(iterator.next())); // add Database-Object to Array
}
}
}
class ownMongoDatabase implements MongoDatabase {
}
是否存在韌體錯誤/編碼失敗? 謝謝你的幫助。
this._mongodbDatabases.add((ownMongoDatabase)this.getDatabase(iterator.next()));
在此行中,您嘗試將MongoDatabaseImpl分配給您自己的MongoDatabase。 這肯定會引發類強制轉換異常。
假設您有作為父類的類A,類B和類C從類A擴展。您不能將類B分配給類C。
嘗試使用has-A關系而不是is-A關系。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.