【问题标题】:ArrayList trouble to pick double variable 'Method call expected'ArrayList 麻烦选择双变量“预期方法调用”
【发布时间】:2016-02-04 02:24:14
【问题描述】:

学习java,典型做法是做银行账户类,

但我有一个问题。

在我的“人”类中,

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;
    }
}

在我的主(测试)类中,

    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 类中的方法 'totalBalanceOfAccountsOwned',

accountsOwned((i)).getBalance();参与 for 循环会导致编译错误

'预期方法调用'。

我是 ArrayList 的新手,所以我不知道是什么问题。

【问题讨论】:

    标签: java arraylist methods double


    【解决方案1】:

    第一次改变

    private ArrayList accountsOwned;
    

    private ArrayList<BankAccount> accountsOwned;
    

    当你稍后获得银行账户时,java 不知道它是银行账户,只认为它是一个对象

    那么正如上面 Kon 所说,使用

    accountsOwned.get(i).getBalance();
    

    【讨论】:

      【解决方案2】:

      您不能使用array 语法取消引用List 对象或其实现类。例如,

      list(0)
      

      list[0]
      

      无效。相反,你想要

      list.get(0);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-12
        • 2016-05-07
        • 2011-06-08
        • 2011-09-30
        • 2012-03-29
        • 1970-01-01
        相关资源
        最近更新 更多