2017-03-18 52 views
0

對於我的課程,我們正在使用arraylist創建一個銀行帳戶。我試圖創建一個包含數組列表的構造函數,但是接收到無法解析的錯誤。任何幫助,將不勝感激,謝謝:)ArrayList無法解析

public class Bank { 
public Bank() { 
    ArrayList<Account> bankArray = new ArrayList<Account>(); 
} 

public void addNewAccount(Account a) { 
    bankArray.add(a); //error here 
    return; 
} 

public Account getAccountByIndex(int idx) { 
    return bankArray(idx); //error here 
} 

public ArrayList getAccounts() { 
    return bankArray; //error here 
} 

的錯誤我收到是

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
bankArray cannot be resolved 

at Bank.addNewAccount(Bank.java:17) 
+1

bankArray是你的構造函數的局部變量。所以它在構造函數之外是不可見的。你需要把它變成一個領域。 –

回答

1

您已經聲明裏面的Bank構造即bankArray,範圍是無效的(構造函數外),即, bankArray只能在構造函數中進行訪問,所以其聲明爲一個類級別的變量象下面這樣:

public class Bank { 

     //Declare bankArray as instance variable 
     ArrayList<Account> bankArray; 

     public Bank() { 
     this.bankArray=new ArrayList<>();//use <> operator to make it less verbose 
     } 
     //add other code of the class 
    } 
2

你bankArray,聲明這樣纔在構造範圍存在。如果你想爲所有的類此屬性來訪問,你必須聲明它直屬類定義:

public class Bank { 
List <Account> bankArray 
public Bank() { 
    this.bankArray = new ArrayList<Account>(); 
} 
0

對於我的課堂上,我們正在使用的ArrayList創建一個銀行帳戶。我 試圖創建一個構造函數,其中包含一個arraylist,但然後 我收到錯誤,它無法解析。

下面的ArrayList只在構造函數的範圍內可見和可訪問。

public Bank() { 
    ArrayList<Account> bankArray = new ArrayList<Account>(); 
} 

,使整個班就全球你需要這樣做:

public class Bank { 
    ArrayList <Account> bankArray; 
    public Bank() { 
     this.bankArray = new ArrayList<Account>(); 
    } 
}