ArrayList 麻烦挑双变量 'Method call expected'
ArrayList trouble to pick double variable 'Method call expected'
学习java,开银行账户class是典型做法,
但是我有一个问题。
在我的 'Person' class,
public class Person{
private String name;
private String personId;
private String e_mail;
private ArrayList accountsOwned;
public Person(String personId) {
this.accountsOwned = new ArrayList<BankAccount>();
this.personId = personId;
}
...
public double totalBalanceOfAccountsOwned(){
double totalBalance = 0;
for (int i = 0; i < accountsOwned.size(); i++){
totalBalance += accountsOwned((i)).getBalance();
//getBalance() is method in BankAccount class
}
return totalBalance;
}
}
在我的主要(测试)class,
ba1_1 = new BankAccount("act001", 100);
ba1_2 = new BankAccount("act001", 200);
ba1_3 = new BankAccount("act001", 300);
ba2_1 = new BankAccount("act001", 400);
ba2_2 = new BankAccount("act001", 500);//(String, double)
ba1_1.setOwner(p1);
ba1_2.setOwner(p1);
ba1_3.setOwner(p1);
p1.getAccountsOwned().add(ba1_1);
p1.getAccountsOwned().add(ba1_2);
p1.getAccountsOwned().add(ba1_3);
p2.getAccountsOwned().add(ba2_1);
p2.getAccountsOwned().add(ba2_2);
p2.getAccountsOwned().add(ba1_3);
问题出在 Person class,
中的方法 'totalBalanceOfAccountsOwned'
accountsOwned((i)).getBalance(); for循环中的一部分会导致编译错误
'Method call expected'。
我是 ArrayList 的新手,所以我不知道问题出在哪里。
您不能使用 array
语法取消引用 List
对象或其实现 类。例如,
list(0)
和
list[0]
无效。相反,你想要
list.get(0);
第一次改动
private ArrayList accountsOwned;
到
private ArrayList<BankAccount> accountsOwned;
当您稍后获取银行帐户时,java 不知道它是一个银行帐户,只认为它是一个对象
然后像Kon上面说的,用
accountsOwned.get(i).getBalance();
学习java,开银行账户class是典型做法,
但是我有一个问题。
在我的 'Person' class,
public class Person{
private String name;
private String personId;
private String e_mail;
private ArrayList accountsOwned;
public Person(String personId) {
this.accountsOwned = new ArrayList<BankAccount>();
this.personId = personId;
}
...
public double totalBalanceOfAccountsOwned(){
double totalBalance = 0;
for (int i = 0; i < accountsOwned.size(); i++){
totalBalance += accountsOwned((i)).getBalance();
//getBalance() is method in BankAccount class
}
return totalBalance;
}
}
在我的主要(测试)class,
ba1_1 = new BankAccount("act001", 100);
ba1_2 = new BankAccount("act001", 200);
ba1_3 = new BankAccount("act001", 300);
ba2_1 = new BankAccount("act001", 400);
ba2_2 = new BankAccount("act001", 500);//(String, double)
ba1_1.setOwner(p1);
ba1_2.setOwner(p1);
ba1_3.setOwner(p1);
p1.getAccountsOwned().add(ba1_1);
p1.getAccountsOwned().add(ba1_2);
p1.getAccountsOwned().add(ba1_3);
p2.getAccountsOwned().add(ba2_1);
p2.getAccountsOwned().add(ba2_2);
p2.getAccountsOwned().add(ba1_3);
问题出在 Person class,
中的方法 'totalBalanceOfAccountsOwned'accountsOwned((i)).getBalance(); for循环中的一部分会导致编译错误
'Method call expected'。
我是 ArrayList 的新手,所以我不知道问题出在哪里。
您不能使用 array
语法取消引用 List
对象或其实现 类。例如,
list(0)
和
list[0]
无效。相反,你想要
list.get(0);
第一次改动
private ArrayList accountsOwned;
到
private ArrayList<BankAccount> accountsOwned;
当您稍后获取银行帐户时,java 不知道它是一个银行帐户,只认为它是一个对象
然后像Kon上面说的,用
accountsOwned.get(i).getBalance();