Я могу думать о двух причинах:
Может быть жизненно важно, чтобы поле не было сериализовано.Следовательно, если в будущем класс станет сериализуемым, это не приведет к ошибке, неэффективности или безопасности, потому что без маркировки класс serialisable также сделает это для поля.
Они могут выполнять какое-то пользовательское использование атрибута
В случае 2 из другого кода будет ясно, что это то, что происходит.Тем не менее, номер 1 - хорошая практика.
Случай 1 - хорошая практика, может быть стоит уравновесить YAGNI («Ты не собираешься нуждаться в этом» - не выполнять работу «на случай, если она понадобится позже») с учетом «хорошо, но если мне это понадобится позже, будет катастрофой, если кто-то упустит, что это поле является исключением.
Так что, хотя здесь это не имеет никакого эффекта, это определенно хорошая практика для сценариев, гдеэто начинает оказывать влияние.
Редактировать: Другая возможность состоит в том, что это отрывок от предыдущей версии, где он действительно был сериализуемым, или автор был в двух умах в то время, и он никогда не был полностью «закончен» (рабочий код когда-нибудь полностью закончен?). То, что что-то есть в коде, не означает, что это должно быть так. Тем не менее, если действительно важно, чтобы что-то не было сериализовано, я все же говорю, что это хорошая практика, чтобы пометить это какпричина, приведенная выше.