所以我的问题是我不知道这方面的最佳实践。我有一个抽象超类,它包含以下内容:

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作为实例保护变量?
这两种代码都能用,但我不知道什么是最好的。
感谢您的帮助!

最佳答案

我是否应该将itemlist作为本地变量发送,而不是将其作为实例变量?或者更好的方法是将sqlitestatement作为实例保护变量?
这真是一个生命周期的例子。如果这些值需要在方法调用之后持续存在,那么您应该将它们设置为实例值。如果没有,并且应该在方法完成后丢弃它们,那么在方法头中声明它们,以便gc可以处理它们。

10-08 08:16
查看更多