0
抽象クラスを作成して、すべてのクラスに重複したコードを書くことを避けるために、 IRepository
、任意のエンティティモデルのGreenDAOで基本的なCRUDを処理する抽象クラスを作成する方法
public abstract class DBStore<T> implements IRepository {
DaoMaster daoMaster;
Class<T> entityClass;
public DBStore(DaoMaster daoMaster, Class<T> entityClass) {
this.daoMaster = daoMaster;
this.entityClass = entityClass;
}
@Override
public void add(Entity entity) {
DaoSession session = this.daoMaster.newSession();
AbstractDao<?, ?> dao = session.getDao(this.entityClass);
dao.insert(entity); // cannot pass entity as parameter because insert() expects capture<?>
}
// Other CRUD methods
}
を実装して、私は構文が、私は、変数entity
は何insert()
を期待であることを指定するために使用すべきかを理解していません。
AbstractDao , ?> - これら二つの一般的なのparamsは何ですか?論理的には、E - エンティティタイプとプライマリキータイプです - つまり、IntegerをPKとして使用する場合、AbstractDaoを宣言してください。 –
aviad
DaoSessionはすでにこれをカバーしています。 DAOへのアクセスだけでなく、CRUDメソッドも提供します。 –