所以我的问题是我不知道最好的做法。我有一个抽象的超类,其内容如下:
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 以及实例受保护的变量?
该代码可以工作,但我不知道什么是最好的。
任何帮助表示赞赏!
答案 0 :(得分:1)
我是否应该将itemList作为局部变量发送而不是将其作为实例变量?或者我应该更好地将SQLiteStatement作为实例保护变量?
这确实是一个终身的例子。如果在完成方法调用后需要保留这些值,那么您应该将它们设为实例值。如果它们没有,并且应该在方法完成后丢弃,那么在方法头中声明它们,以便GC可以处理它们。