Я нахожусь в процессе разработки приложения для Android (Parser Application), где у нас есть класс синтаксического анализатора, который отвечает за фактический анализ работы.
Я хочу предоставить точку расширения для всех, кто хочет использовать API (помимо некоторого общего анализа, который я предоставлю как часть API). Идея состоит в том, чтобы создать интерфейс, и если кто-то захочет объявить свой класс как класс синтаксического анализатора, все, что ему нужно сделать, - это (объявить) реализовать интерфейс.
Затем я хочу получить список всех классов с его экземпляром, реализующим этот синтаксический анализатор. После этого я хочу вызвать метод базового интерфейса, который будет реализован пользователем.
Base Interface
interface BaseParser {
fun parser(key:String):String
}
Implementation
class MyParser: BaseParser {
override fun parser(key:String):String {
// actual implementation
}
Я просто хочу получить экземпляр всего класса, реализующего BaseParser (в данном случае: MyParser), и вызвать метод parser (ключ) во время выполнения.
редактировать: добавлен код