我在java中的构造函数有什么问题?

时间:2016-08-31 04:19:33

标签: java arraylist constructor get

有没有更好的方法(可能......)来构建一个我可以使用set / get方法的类。 请注意,所有数据都存储在ArrayList中。

public class PorterList
{
    public PorterList()
    {
         ArrayList<Porter> porList = new ArrayList<>(); 
    }
    public PorterList(ArrayList<Porter> p)
    {
         ArrayList<Porter> porList = p;
    }    

    SimpleDateFormat porterDF = new SimpleDateFormat("HH:mm:ss");
    private Porter p = new Porter();
    private int _porterNo;
    public String getStatus(int porterNo)
    {
        _porterNo = porterNo;
        p = porList.get(_porterNo);
        return p.p_state;
    }

第二行最后一行出了问题p = porList .get(_porterNo);

我想在我的主要内容中使用类似的内容:

p_L = PorterList(p)
porter_status = p_L.get(5)

非常感谢

3 个答案:

答案 0 :(得分:1)

Yor ArrayList是局部变量,这是你的问题。它应该是一个领域。

private ArrayList<Porter> porList;
public PorterList() { 
  porList = new ArrayList<>(); 
} 
public PorterList(ArrayList<Porter> p
{ 
  porList = p; 
}

答案 1 :(得分:0)

在两个构造函数中,您已声明局部变量porList - 将其设为字段

public class PorterList
{
    private ArrayList<Porter> porList; 

    public PorterList()
    {
         porList = new ArrayList<>(); 
    }
    public PorterList(ArrayList<Porter> p)
    {
         porList = p;
    }
....
}

答案 2 :(得分:0)

当你声明ArrayList时,porList = p;在构造函数内部,它将成为局部变量,因此它不会在该构造函数外部可见,如果您希望它在您的类级别使用,请在全局下面声明它

lag_1_min_Price