Отдельный отказ от ответа:
Скорее всего, это ужасная идея.
Вы пишете код для сообщения вашего намерения .Когда вы используете эту аннотацию, вы говорите «всем», что эти поля следует игнорировать.
Читатель-человек, смотрящий на ваш код, может потратить полдня, задавая себе вопрос: «он говорит @IgnoreField
для a
и c
, так почему, черт возьми, a
и c
показываютсериализованные данные?
Другими словами, любую проблему, которую вы пытаетесь решить здесь, ответ, скорее всего, , а не , взломав игнорирование аннотаций иногда .
Следующее лучшее «разумное» решение может быть следующим: полагаться на различные пользовательские аннотации, такие как @IgnoreAlways
и что-то вроде @OnlyIncludeForXyz
.Другими словами: четко выразить, что может произойти.Вместо того, чтобы использовать декларативное программирование, чтобы потом «лгать» о том, что вы объявили.