Можно ли написать схему Avro/IDL, которая будет генерировать Java-класс, который либо расширяет базовый класс, либо реализует интерфейс?
Кажется, что сгенерированный класс Java расширяет org.apache.avro.specific.SpecificRecordBase
. Таким образом, орудия могут быть путем. Но я не знаю, возможно ли это.
Я видел примеры с предложениями по определению явного поля типа в каждой конкретной схеме с большей ассоциацией, чем семантикой наследования.
Я использую свой базовый класс в моих классах factory и других частях кода с помощью дженериков типа <T extends BaseObject>
. В настоящее время у меня был код, созданный с помощью схемы JSON, которая поддерживает наследование.
Другой вопрос: можете ли вы использовать IDL для определения только записей без определения протокола? Я думаю, что ответ отрицательный, потому что компилятор жалуется на недостающее ключевое слово протокола.
Помогите оценить! Спасибо.