Я пытаюсь сделать невозможное, и он, похоже, не работает. Общая цель заключается в следующем: у меня есть интерфейс Component, и я хотел бы показать пользователю список классов в пути к классам, которые реализуют этот интерфейс. Фокус в том, что он должен работать в Android.Как я могу построить плагин sbt, который хранит имя всех реализаций интерфейса?
Рядом, как я могу сказать, это невозможно сделать во время выполнения. Механизм java (ServiceLoader) был намеренно искалечен инструментальной привязкой Android, поэтому он не работает. Guava не работает на Android, а также ClassUtils, равно Reflections.
На данный момент я занимаюсь бритьем яков в течение 8 часов, и нет конца, поэтому я ищу альтернативные подходы. Мое настоящее мышление заключается в создании плагина (очень похоже на sbt-spi, но нет, потому что Android ненавидит SPI), который может генерировать текстовый файл во время компиляции, в котором перечислены все классы, реализующие интерфейс, так что во время выполнения я могу открыть этот файл как ресурс, а затем использовать отражение, чтобы начать их строить. Это разумная идея? Как мне это сделать? (мой текущий подход «читать источник плагина и попытаться скопировать его», но это похоже на сценарий, где «попросить мудрость» - лучший подход)