Как заставить мой метод добавлять сконструированные необязательные аргументы в мой arrayList - PullRequest
0 голосов
/ 19 октября 2019

Я пытаюсь создать метод, который добавляет учетную запись в мой ArrayList, если он еще не существует. Нравится.

    public boolean addAccount(Account account) {
        for (Account acc : accountList) {
            if (!acc.equals(account))
                accountList.add(acc);
            return true;
        }
        return false;
    }

Но я хочу, чтобы был создан другой переопределенный метод addAccount с такими необязательными параметрами, как этот

public Account(String accountName, int accountNumber, double accountBalance)

Это то, что у меня сейчас есть, но не работает

    public boolean addAccount(String accountName, int accountNumber, double accountBalance) {
       for (Account acc : accountList) {
            if (!acc.getAccountName().equals(accountName))
               accountList.add((acc(accountName,accountNumber,accountBalance)));
            return true;
        }
        return false;
    }

Ответы [ 2 ]

0 голосов
/ 19 октября 2019

Попробуйте вот так, нет необходимости в цикле

public boolean addAccount(Account account) {
    if(!accountList.contains(account)) {
        accountList.add(account);
        return true;
    }
    return false;
}

Добавить метод равно в классе вашей модели Account.java

@Override
public boolean equals(Object obj) {
    if (this == obj)
        return true;
    if (obj == null)
        return false;
    if (getClass() != obj.getClass())
        return false;
    Account other = (Account) obj;
    if (accountNumber != other.accountNumber)
        return false;
    return true;
}
0 голосов
/ 19 октября 2019

Предположим, у вас есть конструктор типа Account(String accountName, int accountNumber, double accountBalance), вы можете попробовать это:

public boolean addAccount(String accountName, int accountNumber, double accountBalance) {
    boolean found=false;
    for (Account acc : accountList)
        if (acc.getAccountName().equals(accountName))
           found=true; 
    if(!found){
        accountList.add(new Account(accountName,accountNumber,accountBalance));
        return true;
    }
    return false;
}
...