Чтобы понять, как работают AutoAnnotation и Dagger 2, сначала мне нужно понять AutoValue
Пример AutoValue: ошибка: невозможно найти класс символов AutoValue_Animal
Затем выполнитепо AutoAnnotation
Для чего нужен @AutoAnnotation? Как это можно использовать?
После этого я мог бы изучить приведенный выше пример с Dagger 2 с помощью AutoAnnotation.
Короче говоря, AutoAnnotation - это библиотека генератора кода Java, которая генерирует ключ аннотации, эквивалентный значению, который можно использовать для работ с несколькими связываниями (поскольку классы Java не похожи на класс данных Kotlin, поэтому для их создания необходим такой инструмент). эквивалент по значению проще).
Пример, приведенный в документе Google AutoValue, не работает "из коробки". Требуется несколько модификаций, например: 1. Необходимо сделать общедоступным MyComponentTest, а также функцию. 2. Код AutoAnnotation должен быть не в тестовой папке, а в самой исходной папке. 3. Для работы AutoAnnotation с Dagger 2 нам понадобится следующая настройка
android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true
Я сделал пример кода в https://github.com/elye/demo_android_dagger_autoannotation