2015-11-09 29 views
0

我正在對MongoDB Java應用程序進行編碼。MongoDB Java驅動程序:無法擴展MongoDatabase

我想從mongoClient創建每個數據庫的對象集合(類型爲MongoDatabase)。檢查

下一步:我想擴展類型MongoDatabase來爲我自己編寫一些函數。 Folling錯誤出現:java.lang.ClassCastException:com.mongodb.MongoDatabaseImpl不能轉換到model.ownMongoDatabase

我不知道爲什麼,但舊的Java的應用程序有一個DB-類。對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 { 

} 

是否有一個因子評分錯誤/編碼失敗? 感謝您的幫助。

回答

0

this._mongodbDatabases.add((ownMongoDatabase)this.getDatabase(iterator.next()));

在這一行中,您嘗試將MongoDatabaseImpl分配給您自己的MongoDatabase。這將肯定會拋出類拋出異常。

假設有A類是父類, B類和C類從A類 不能B類分配給C類擴展

嘗試具有-A的關係,而不是is-a的關係。