Implementor
– объект, позволяющий сгенерировать файл с java классом, который реализует данный интерфейс или абстрактный класс.
Под реализацией подразумевается следующее:
- Это файл с исходным кодом сгенерированного класса.
- Исходный код успешно компилируется.
- Класс в файле реализует данный интерфейс/является наследником данного класса.
- Класс в файле не является абстрактным.
Ограничения на входной интерфейс/абстрактный класс.
- Интерфейс/Абстрактный класс всегда публичен.
- Интерфейс/Абстрактный класс может находится в произвольном пакете, например
ru.hse.java.implementor.InputInterface
. - Интерфейс/Абстрактный класс может находится в стандартной библиотеке.
- Интерфейс/Абстрактный класс может быть наследником класса/быть реализацией интерфейсов из стандартной библиотеки.
- Внутри интерфейса/абстрактного класса не должно быть полей/методов с
default
видимостью (без модификатора видимости). - Не поддерживаются нововведения Java 8.
- Не поддерживаются модификаторы, отличные от модификаторов доступа,
static
,final
(например,synchronized
). - Не поддерживаются generics.
- Не поддерживаются аннотации.