Pull to refresh
0
0
Send message
ИМХО:
данный пример будет кошерен, если использовать в ParentNotificationCreator паттерн стратегия.

Например (можно и без рефлексии, если добавить вспомогательный класс или использовать method reference из java 8):
public class ParentNotificationCreator extends CoreNotificationCreator {

   private Map<String, Class<? extends CoreNotification>> messageTypeForNotification;

   public ParentNotificationCreator(Context context, Map<String, Class<? extends CoreNotification>> messageTypeForNotification) {
       super(context);
       this.messageTypeForNotification = messageTypeForNotification;
   }

   @Nullable
   @Override
   protected CoreNotification factoryMethod(String messageType, RemoteMessage remoteMessage) {
       Class<? extends CoreNotification> notificationClass =  messageTypeForNotification.get(messageType);
       if (notificationClass != null) {
             return notificationClass.getConstructor(RemoteMessage.class).newInstance(remoteMessage);
       }
       return null;
   }
}


И создавать инстанс этого класс таким способом:
Map<String, Class> messageTypeForNotification = new HashMap<>();
messageTypeForNotification.put(PickUpNotification.TYPE,  PickUpNotification.class);
messageTypeForNotification.put(GradeNotification.TYPE,  GradeNotification.class);
new ParentNotificationCreator(context, messageTypeForNotification);


Это позволит добавлять новые обработчики без изменения NotificationCretor, а также сделать общий NotificationCretor как для учителей так и для родителей.
Обратите внимание, если вы хотели запустить бота в отдельном потоке, то вместо вызова
r.run()
в main стоит сделать так
new Thread(r).start()

В Украине при возврате вещи купленной с помощью карты деньги возвращают только на карту.

Не совсем так. 4% если переводить «кредитные» деньги. Если переводить свои, то процента нет, если у карт одинаковые условия по обналичке
Мой приятель был причастен к созданию именно такого девайса. Как только акселерометр регистрирует движение — ищет по синему зубу спаренный с ним смартфон. Если его нет, начинает бить тревогу: переходит в боевой режим, звонит на зараннее заданный номер и отправляет координаты.
Если быть точным, то переменная должна быть как минимум effectively final. То есть:
        int number = 42;
        Runnable correct =  () -> System.out.println(number);

        Runnable incorrect = () -> number = 56; //неверно

Information

Rating
Does not participate
Registered
Activity