Адаптация нескольких интерфейсов

  • 20
  • Недоступна
Давай представим ситуацию, что с одной стороны у нас есть некая база данных, в которой хранятся данные. База данных имеет стандартный набор команд (методов) для предоставления данных, они описаны в интерфейсе IncomeData. Примеры представления данных приведены в комментариях около каждого метода. С другой стороны есть пользователи
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (354)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Luerox
Уровень 33
28 ноября, 12:54
Минус 1 попытка на «неправильное» имя переменной и еще минус 4 на попытки угадать, как валидатор хочет видеть реализацию метода getPhoneNumber()… Хотя задумка задачи очень классная, помогает понять тему.
BlackGrizzli Team
Уровень 32
22 ноября, 08:05
@Override
    public String getPhoneNumber() {
        StringBuilder phone = new StringBuilder(String.valueOf(data.getPhoneNumber()));
        while (phone.length() < 10){
            phone.insert(0,0);
        }
        phone.insert(0,'(');
        phone.insert(4,')');
        phone.insert(0, data.getCountryPhoneCode());
        phone.insert(0,'+');
        phone.insert(11,'-');
        phone.insert(14,'-');
        return phone.toString();    //For example1: +38(050)123-45-67
    }
}
В тесте выводит как надо, но тут не принимает.
17 ноября, 19:16
Очень долго воевал с валидатором по поводу getPhoneNumber(), Тестил метод, все отлично проходило добавляло и выводило, но ему почему-то не нравилось. в итоге психанул и копи-пастил этот метод из готового решения.
Андрей Федоров
Уровень 32
17 ноября, 12:45
Всего час времени и я победил валик.
@Override
        public String getPhoneNumber() {
            int number = data.getPhoneNumber();
            String numberPhone = String.format("%010d",number);
            return String.format("+%d(%s)%s-%s-%s",data.getCountryPhoneCode(),numberPhone.substring(0,3),numberPhone.substring(3,6),numberPhone.substring(6,8),numberPhone.substring(8,10));

        }
Bandiu Band
Уровень 40
16 октября, 22:58
Трохи дістає перероблювати робочий код, бо вони зробили "іншим методом", а яким ми вам не скажемо.... Доводиться дивитись в їхнє рішення, після того як впевнився в правильності результату свого коду.
Bandiu Band
Уровень 40
16 октября, 23:03
P.S.
StringBuilder k = new StringBuilder();
       for (char c:number)
            k.append(c);
            k.insert( 3 , '(' ).insert( 7 , ')' ).insert( 11 , '-' ).insert( 14 , '-' );
працює, але валідатор не бачить.
Stas Azin Младший помощник дворника в Улица
16 октября, 20:54
Это я называю хардкор
.substring(0, 3) + ")" + .substring(3, 6) + .substring(6, 6) + "-" + .substring(6, 8) + .substring(8, 8) + "-" + .substring(8);
Viacheslav Paninskii
Уровень 32
24 сентября, 08:23
Вот так валидатор пропустил
public String getCountryName() {
            return countries.getOrDefault(data.getCountryCode(), data.getCompany());
        }
Эльдар
Уровень 19
21 сентября, 19:40
Вопрос к разработчикам:мы изучаем адаптеры,собственно,задачи medium были именно на понимание этого материала.В этой же задаче я голову ломал над дополнительными нулями и выводом телефонного номера.Сижу,решив ее,и понимаю,что забыл,как работают сами адаптеры(материал-то новый).Какая польза от таких задач?!
17 ноября, 19:03
Польза в том чтобы : 1)погуглили новый материал перед подачей. потом при объяснении с другой стороны он лучше усвоиться; 2) чтобы не забывали старые материалы; 3) банальное "набивание руки".
hint1k
Уровень 32
9 сентября, 11:46
Номер телефона написал вручную (правильное решение через чур заморочное): public String getPhoneNumber() { int phone1 = data.getCountryPhoneCode(); int phone2= data.getPhoneNumber(); String str1 = String.valueOf(phone1); String str2 = String.format("%010d",phone2); // дополняем номер нулями String str3 = "+" + str1 + "(" + str2.substring(0,3) + ")" + str2.substring(3,6) + "-" + str2.substring(6,8) + "-" + str2.substring(8); return str3; }
Yunir
Уровень 51
2 сентября, 08:49
Вроде бы решаешь задачи, в основном, понимая что от тебя требуется. Но понимания где и как это будет правильно использоваться вообще нет.