Я использую AutoAnnotation в Java в соответствии с @ AutoAnnotation для Dagger 2 Учебник по связыванию не работает. Как заставить это работать?
import dagger.MapKey;
@MapKey(unwrapValue = false)
@interface MyKey {
String name();
Class<?> implementingClass();
int[] thresholds();
}
import com.google.auto.value.AutoAnnotation;
public class AutoValueUtil {
@AutoAnnotation
static MyKey createMyKey(String name, Class<?> implementingClass, int[] thresholds) {
return new AutoAnnotation_AutoValueUtil_createMyKey(name, implementingClass, thresholds);
}
}
Я понимаю, что в Kotlin у нас есть класс данных, и нам не нужна помощь AutoValue. Однако MyKey
будет преобразовано в Annotation Class
. Как я могу создать экземпляр MyKey
в Kotlin (без использования AutoAnnotation
, поскольку я больше не могу его использовать)?
Моя попытка, как показано ниже
import dagger.MapKey
import kotlin.reflect.KClass
@MapKey(unwrapValue = false)
internal annotation class MyKey(val name: String, val implementingClass: KClass<*>, val thresholds: IntArray)
object AutoValueUtil {
internal fun createMyKey(name: String, implementingClass: Class<*>, thresholds: IntArray): MyKey {
return MyKey(name, implementingClass::class, thresholds)
}
}
Результатом будет Annotation class cannot be instantiated