Pull to refresh
21
0.2

User

Send message
final case class Failure[+T](exception: Throwable) extends Try[T] {...}


Т.е. при использовании Try исключение равно создаётся, соответственно, и стек-трейс будет заполнять. Нужен ещё один вариант: исключение без заполнения стек-трейса вместе с Try. :)
Externalizable нужен, если предполагается ручной вызов методов сериализациии. А чтобы иметь возможность вручную управлять сериализацией/десериализацией достаточно создать приватные методы readObject(ObjectInputStream)/writeObject(ObjectOutputStream) в Serializable-объекте.
Есть подозрение, что это сгенерировано IDE.
На языке программирования нельзя повторить программу, на котором данный язык программирования был написан, но можно написать более сложную по логике программу, чем сам язык программирования.

С чего бы это вдруг?
Если в абстрактные классы сервиса.контроллера добавить конструктор, принимающий репозиторий/сервис, то и геттеры не нужно будет писать в наследниках. Достаточно только сузить тип аргумента в наследнике.

public abstract class AbstractController<
        E extends AbstractEntity,
        R extends CommonRepository<E>,
        S extends CommonService<E, R>> implements CommonController<E, R, S> {
    private final S service;
    protected AbstractController(S service) {
        this.service = service;
    }
    public getService() {
        return this.service;
    }
}

public class UserController extends AbstractController<User, UserRepository, UserService> {
    public UserController(UserService service) {
        super(service);
    }
}
Нашёл.

разница в несколько даже секунд на старте приложения

может быть критична, если время на запуск лимитировано.

Например, на heroku, если через 30 секунд приложение не отзывается, то приложение убивается.
В одном из докладов Евгения Борисова было сравнение времени поднятия контекста. И оно было не в пользу java config.
Проверять на «одно и то же»-сть, таки лучше сравнивая ссылки.
Исходник на gist.github выложить было бы лучше.
По-моему, тут вообще замыкания не нужно. Можно же ссылку на кнопку получить из события.
document.getElementById('press').addEventListener('click', e => e.target.classList.toggle('on'));
Во всём обсуждении под «прокси» я подразумевал именно паттерн, а никак не его какую-то имплементацию. Похоже, что мы друг друга не поняли.
Spring всегда использует прокси для консистентного поведения.
И кстати, спринг позволяет писать независимые от технологии (Dynamic Proxy или AspectJ) аспекты, зачем же руками прокси писать?

Всё спринговое AOP построено на проксях.
Target object: object being advised by one or more aspects. Also referred to as the advised object. Since Spring AOP is implemented using runtime proxies, this object will always be a proxied object.


Т.ч. «оверхед» никуда не денется.
Аспекты, во-первых, увеличивают время компиляции. Во-вторых, в случае с проски-объектами исполняется тот код, который написан тобой, а не изменённый сторонней библиотекой, которая тоже может иметь баги.
только для выхода из вложенных циклов

Не только циклов, но и произвольных блоков кода.

один способ передачи объекта в метод – по ссылке.

Нет. В Java все аргументы метода передаются по значению. Просто для объектных типов значением является ссылка.

сигнатура (имя метода, возвращаемое значение, аргументы) с точностью совпадали

Нет. Возвращаемое значение не входит в сигнатуру метода.
Код, демонстрирующий утверждение
class A {
    A method() {
        throw new UnsupportedOperationException("not implemented");
    }
}
class B extends A {
    @Override B method() {
        return this;
    }
}



возможность корректно использовать строки в switch-case

Этой возможностью лучше не пользоваться, т.к. это сахар, на деле, switch делается по хешкоду, который может иметь коллизии.

нашли заблокированный телефон со странной заставкой

Если телефон заблокирован, то каким образом я смогу получить доступ к картинке как к файлу? А если я могу получить доступ (читай, доступ к файловой системе) какими-то обходными путями, то зачем мне узнавать пароль с картинки?
Условие задачи какое-то странное.
Выбраная хэш-функция зело плохая.
const hash = key => Array.from(key).reduce((hashAccumulator, keySymbol) => (hashAccumulator + keySymbol.charCodeAt(0)), 0);
const hashes = ['key', 'kye', 'eyk', 'eky', 'yke', 'yek'].map(hash);
console.log(hashes)


Хотя бы стандартную из java взять надо.
const hash = key => Array.from(key).reduce((hashAccumulator, keySymbol) => 31 * hashAccumulator + keySymbol.charCodeAt(0), 0)
true — это json-значение, а не объект.
По-моему, конструкции вида
'true' :: jsonb
'12345.67' :: jsonb

априори должны кидать какой-нибудь WrongFormatException. Ну, не является 'true' валидным json-объектом.

Для подобного должен существовать отдельный тип, например json_element.
используют для той же Java slf4/log4 (не log4j2, это важно), которые просто не умеют в асинхронность.

Насчёт log4j согласен, но чего ради slf4j обвиняется в неумении?

slf4f — это просто фасад, набор интерфейсов, за которыми может скрываться какая угодно их имплементация. Например, авторский logback умеет быть асинхронным.

Information

Rating
2,512-th
Location
Омск, Омская обл., Россия
Registered
Activity