指向其他类中的ArrayList的指针

时间:2013-12-03 18:07:57

标签: java arraylist declaration

在类浏览器中我有字段

   private ArrayList<WineCase> basket; 

我还在构造函数中创建了ArrayList:

   basket = new ArrayList<WineCase>();

在类网站中,我必须访问此ArrayList。当我尝试为每个标题编译这个时:

 for(WineCase wineCase : basket) 

错误是“未声明可变篮子”。如何从Browser类声明ArrayList?

2 个答案:

答案 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())