• Как реализуется обработка исключений на корпоративных проектах?

    Для того, чтобы обрабатывать исключения можно:
    1. Воспользоваться аннотацией @ExceptionHandler. Чтобы не прописывать её в каждом контроллере и не использовать наследование, её можно применить к методу в классе с аннотацией @ControllerAdvice
    2. Реализовать свой HandlerExceptionResolver и зарегистрировать его в WebMvcConfigurer
    Ответ написан
    Комментировать
  • Паттерн Стратегия

    @rtorsten
    Как реализовать метод void changeValueTo1::Change() так, чтобы он имел доступ к параметрам класса MyClass?

    Наиболее простой способ, как уже и сказали сделать перекрестную ссылку/указатель.
    class changeValueTo1 : public changeValue
    {
    public:
        changeValueTo1(General * p) : _parent(p) {}
        ~changeValueTo1() {}
        void Change();
    
    private:
        General * _parent;
    };
    
    void changeValueTo1::Change()
    {
        //должен изменить значение параметра a объекта класса MyClass на 1
        _parent->a = 5;
    }
    
    MyClass::MyClass() {
       object = new changeValueTo1(this);
    }
    


    В данном случае это параметр класса General, а не MyClass как ты указал в комментарии. Если нужно именно MyClass то необходимо в changeValueTo1 изменить тип указателя.
    Ответ написан
    1 комментарий