У меня есть очередь единых объектов сообщений с несколькими производителями и одним потребителем. Потребитель публикует информацию и должен иметь возможность предоставлять доступ на основе источника данных, поэтому я хочу, чтобы производитель отправил подходящий идентификатор вместе с сообщением. Сами производители не могут нести ответственность за ограничения доступа на дальнюю сторону.
Идентификатор должен относиться к роли продюсера в моем приложении. Я хочу обеспечить, чтобы все производители определяли один и чтобы подклассный производитель мог выбрать его наследование или переопределение. Имя класса продюсера было бы хорошим приближением, но свойство, которое я хочу идентифицировать, на самом деле не присуще структуре класса, скорее это то, что я определяю.
Я мог бы использовать отражение, чтобы узнать имя класса или, может быть, имя интерфейса, но это пахнет слишком много накладных расходов. Кроме того, я не уверен, что будет искать подходящее свойство.
Поскольку все производители наследуют один и тот же абстрактный родительский класс, я подумал, что хорошим способом было бы поместить туда константу (или в интерфейс), но затем я понял, что в Java «константа» действительно является «статической» final ", что означает, что я не могу переопределить его, поэтому он не работает таким образом.
Как бы это сделал более опытный программист на Java?