0
public class DbManager<T extends Dao> {

    public DbManager(Context c) {
        setCreateDatabaseScript(T);
    }

    public void setCreateDatabaseScript(T dao) {
        this.createDatabaseScript = ((Dao)dao).createTable();
    }

    //..
}

我如何在构造函数内部调用 setCreateDatabaseScript。我尝试像示例但不工作。什么是正确的语法?

4

3 回答 3

1

setCreateDatabaseScript(T dao)需要实例,T所以你可能应该在构造函数中传递它

public DbManager(Context c, T dao) {
    setCreateDatabaseScript(dao);
}

另外,由于T extends Dao您不需要将其转换为 Dao,因此只需使用dao.createTable();

于 2013-03-02T20:59:11.313 回答
0
public DbManager(Context c) {
    setCreateDatabaseScript(T);
}

您必须使用 T 类型的对象作为参数调用 setCreateDatabaseScript,而不仅仅是使用 T。

于 2013-03-02T20:57:52.210 回答
0

对象 T 在构造函数中使用时从未被声明或实例化。

于 2013-03-02T20:59:31.133 回答