将所需变量发送到子类方法 - 作为方法属性或受保护的类属性

时间:2013-08-19 07:32:17

标签: java inheritance


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

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 以及实例受保护的变量?

该代码可以工作,但我不知道什么是最好的。
任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

  

我是否应该将itemList作为局部变量发送而不是将其作为实例变量?或者我应该更好地将SQLiteStatement作为实例保护变量?

这确实是一个终身的例子。如果在完成方法调用后需要保留这些值,那么您应该将它们设为实例值。如果它们没有,并且应该在方法完成后丢弃,那么在方法头中声明它们,以便GC可以处理它们。