3


所以我的问题是我不知道最好的做法。我有一个具有以下内容的抽象超类:

protected ArrayList<Item> itemList; 
protected abstract ArrayList<Item> getSpecificObjects(SQLiteStatement st);
public ArrayList<Item> getItems() {
            itemList= new ArrayList<Item>();
            SQLiteStatement st = generateStatement();
            getSpecificObjects(st);
            return itemList;
        }

getSpecificObjects (st)是在这个类中声明的一个抽象方法,它的实现在抽象类的子类中。它接收一个 SQLiteStatement 局部变量作为方法变量,并将所需的数据写入实例受保护变量itemList中。

我应该将itemList作为局部变量发送而不是使其成为实例变量吗?或者更好的是我应该将SQLiteStatement以及实例保护变量?

无论哪种方式,代码都可以工作,但我只是不知道什么是最好的。
任何帮助表示赞赏!

4

1 回答 1

1

我应该将 itemList 作为局部变量发送而不是使其成为实例变量吗?或者更好的是我应该将 SQLiteStatement 以及实例保护变量?

这真的是一个生命周期的案例。如果在进行方法调用后这些值需要保留,那么您应该将它们设为实例值。如果它们没有,并且应该在方法完成后被丢弃,那么在方法头中声明它们以便 GC 可以处理它们。

于 2013-08-19T07:34:36.207 回答