我遇到了一個問題,將一個對象添加到arraylist,使用類的方法拋出一個錯誤,我似乎無法找到問題。 該錯誤是Error = non-static variable db cannot be referenced from a static contex
BankAccount程序,通過方法添加到arraylist
驅動程序代碼(有5例,但問題是在上述情況下斷裂所示最後一行。)
package bankaccount;
import java.util.Random;
public class DriverClass
{
Database db = new Database();
Database Deleted = new Database();
boolean done = false;
public static void main(String[] args)
{
while (!false)
{
int menu = IO.getInt("Please choose one of the following:"+
"\n 1 to create new account"+ "\n 2 to delete an account"+
"\n 3 to withdraw from an account"+"\n 4 to deposit to an account"+
"\n 5 to list all customers"+"\n 6 to list all deleted customers"+
"\n 7 to display single account "+"\n 8 to exit this program");
switch(menu)
{
case 1:
//Create bankaccount object = creates new account
String LastName = IO.getString("Please type last name: ");
String FirstName = IO.getString("Please type first name: ");
Name n = new Name (LastName,FirstName);
//Create address object
String street = IO.getString("Please type your address: ");
String city = IO.getString("Please type your city: ");
String state = IO.getString("Please type your state: ");
String zipcode = IO.getString("Please type your zipcode: ");
Address addr = new Address (street,city,state,zipcode);
//Create Account number
Random randomGenerator = new Random();
int randomInt = randomGenerator.nextInt(2000000000);
AccountNum accno = new AccountNum(randomInt);
//Create customer object
Customer c = new Customer(n,addr,accno);
//Create bankaccount object
double amt = IO.getDouble("Please type the opening account balance: ");
BankAccount b = new BankAccount(c, amt);
db.add(b);
break;
&這裏是從數據庫類的代碼 - 調用add方法用於數組列表 package bankaccount;
import java.util.ArrayList;
public class Database
{
int index;
boolean found;
ArrayList<BankAccount> list;
BankAccount acc;
Database()
{
ArrayList<BankAccount> list = new ArrayList<BankAccount>();
}
public void add(BankAccount b)
{
list.add(b);
}
BankAccount remove (int i)
{
return list.remove(i);
}
BankAccount getaccount()
{
return acc;
}
ArrayList getlist()
{
return list;
}
int getindex()
{
return index;
}
boolean inlist()
{
return found;
}
void search (String key)
{
found = false;
int i = 0;
//int.length = list.size();
while (i < list.size() && !found)
{
BankAccount b = list.get(i);
if (key.equals(b.getcustomer()))
{
acc = b; found = true; index = i;
}
else
{
i++;
}
}
}
}
什麼是錯誤 – PSR
錯誤=非靜態變量db不能從靜態上下文中引用。欣賞任何推動正確的方向! – ArronG
檢查了這一點 http://stackoverflow.com/questions/5671610/add-object-to-array-list-get-error-when-try-add-obect-to-arraylist 的http:// stackoverflow.com/questions/3527137/correct-way-to-add-objects-to-an-arraylist – 2013-05-28 02:51:33