Реализация интерфейса Account Service

Всем привет. Программа не проходит проверку в редакторе кода. Пишет "Failed. Wrong answer". В IDEA ошибок нет.

interface AccountService {
        /**
         * It finds an account by owner id
         *
         * @param id owner unique identifier
         * @return account or null
         */
        Account findAccountByOwnerId(long id);

        /**
         * It count the number of account with balance > the given value
         *
         * @param value
         * @return the number of accounts
         */
        long countAccountsWithBalanceGreaterThan(long value);
    }

    // Declare and implement your AccountServiceImpl here
    class AccountServiceImpl implements AccountService {

        Account[] accounts;

        public AccountServiceImpl(Account[] accounts) {
            this.accounts = accounts.clone();
        }

        public Account findAccountByOwnerId(long id) {
            for (Account account : accounts) {
                if (account.getId() == id) {
                    return account;
                }
            }
            return null;
        }

        public long countAccountsWithBalanceGreaterThan(long value) {
            long counter = 0;
            for (Account account : accounts) {
                if (account.getBalance() > value) {
                    counter++;
                }
            }
            return counter;
        }
    }

    class Account {

        private long id;
        private long balance;
        private User owner;

        public Account(long id, long balance, User owner) {
            this.id = id;
            this.balance = balance;
            this.owner = owner;
        }

        public long getId() {
            return id;
        }

        public long getBalance() {
            return balance;
        }

        public User getOwner() {
            return owner;
        }
    }

    class User {

        private long id;
        private String firstName;
        private String lastName;

        public User(long id, String firstName, String lastName) {
            this.id = id;
            this.firstName = firstName;
            this.lastName = lastName;
        }

        public long getId() {
            return id;
        }

        public String getFirstName() {
            return firstName;
        }

        public String getLastName() {
            return lastName;
        }
    }

Вам дан интерфейс с именем AccountService. Интерфейс имеет два абстрактных метода:

findAccountByOwnerId(long id)возвращает Accountнайденный по идентификатору владельца или null. countAccountsWithBalanceGreaterThan(long balance) это возвращает количество счетов с балансом больше, чем переданное значение. Есть также два других класса: Account(id, balance, owner) и User(id, firstName, lastName). Смотрите их реализации в предоставленном шаблоне кода.

Вам необходимо реализовать AccountServiceинтерфейс и два его метода.

  • Ваша реализация должна быть названа AccountServiceImpl. Он должен иметь конструктор с одним аргументом - массив учетных записей.

  • Реализация должна держать массив внутри.

  • Первый метод должен искать учетную запись по идентификатору владельца в массиве, второй - подсчитывать количество учетных записей, которые удовлетворяют заданному условию в массиве.

Вот пример экземпляра:

Account[] accounts = ... AccountService service = new AccountServiceImpl(accounts); Примечание: не делайте классы и интерфейсы public.


Ответы (1 шт):

Автор решения: Filjo

Как уже подметили в комментарии, ошибка в методе findAccountByOwnerId(). В самом имени метода кроется ответ на Ваш вопрос. Еще почему-то я не увидел @Override над методами. И также в методе countAccountsWithBalanceGreaterThan() может ругаться компилятор: если long counter = 0, а не 0L

→ Ссылка