Реализация интерфейса 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 шт):
Как уже подметили в комментарии, ошибка в методе findAccountByOwnerId(). В самом имени метода кроется ответ на Ваш вопрос. Еще почему-то я не увидел @Override над методами. И также в методе countAccountsWithBalanceGreaterThan() может ругаться компилятор: если long counter = 0, а не 0L