在类浏览器中我有字段
private ArrayList<WineCase> basket;
我还在构造函数中创建了ArrayList:
basket = new ArrayList<WineCase>();
在类网站中,我必须访问此ArrayList。当我尝试为每个标题编译这个时:
for(WineCase wineCase : basket)
错误是“未声明可变篮子”。如何从Browser类声明ArrayList?
答案 0 :(得分:1)
您无法访问属于另一个类的私有实例变量。您需要在basket
类中声明Website
或者将basket
作为公共实例变量(不推荐,更好地通过getter方法访问),并使用实例访问它来自Browser
类的Website
类。
pulic ArrayList<WineCase> basket; //in Browser class
或
private ArrayList<WineCase> basket; //in Browser class
public ArrayList<WineCase> getBasket() {} // in Browser class
和
for(WineCase wineCase : browserInstance.basket) // in Website class
答案 1 :(得分:1)
您已在basket
中将private
声明为Browser
,因此您无法直接访问它。非常好;它是封装的。
在Browser
中创建一个“getter”方法来访问它:
public ArrayList<WineCase> getWineCases() {
return basket;
}
当然,您仍然需要Browser
的实例来呼叫getWineCase
。然后你可以调用方法:
for(WineCase wineCase : aBrowser.getWineCases())