Моя IDE (JetBrains IntelliJ IDEA) предупреждает меня о синхронизации с параметром метода, даже если он всегда является объектом.
Полное предупреждение гласит:
Синхронизация по параметру метода 's'... Информация о проверке: Сообщает о синхронизации по локальной переменной или параметру. При такой синхронизации очень трудно гарантировать правильность. Может быть возможно улучшить подобный код, управляя доступом через, например, синхронизированный класс-обертку, или синхронизируя по полю.
Я предполагаю, что с автобоксом параметр может быть примитивом, который преобразуется в объект? Хотя, с автобоксом, я бы предположил, что это всегда объект, но, возможно, не общий объект, что означает, что это не будет общая синхронизация.
Кто-нибудь знает, почему будет присутствовать предупреждение? В моем случае тип ShortCircuit
всегда является объектом, и среда IDE должна знать это.