簡體   English   中英

MongoDB Java驅動程序:無法擴展MongoDatabase

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM