Kotlin несколько классов весной @Import - PullRequest
0 голосов
/ 20 сентября 2019

Я использую котлин.У меня есть два весенних класса, com.example.SpringConfigA и com.example.SpringConfigB.Я пытаюсь импортировать их в com.example.SpringConfigParent, но ни одно из следующих действий не работает:

Попробуйте 1, ошибка: This annotation is not repeatable

@Import(com.example.SpringConfigA)
@Import(com.example.SpringConfigB)
class SpringConfigParent {}

Попробуйте 2, ошибка: Type mismatch: inferred type is () -> ??? but KClass<*> was expected

@Import({com.example.SpringConfigA, com.example.SpringConfigB})
class SpringConfigParent {}

Попробуйте 3, ошибка: Only 'const val' can be used in constant expressions

@Import(arrayOf(com.example.SpringConfigA, com.example.SpringConfigB))
class SpringConfigParent {}    

Каков правильный синтаксис в Kotlin для этого?

РЕДАКТИРОВАТЬ: Как предложил @jaquelinep, я забыл добавить ::class, пытается с этим:

Попробуйте 1, ошибка: This annotation is not repeatable

@Import(com.example.SpringConfigA::class)
@Import(com.example.SpringConfigB::class)
class SpringConfigParent {}

Попробуйте 2, ошибка: Type mismatch: inferred type is () -> KClass<SpringConfigA> but KClass<*> was expected

@Import({com.example.SpringConfigA::class, com.example.SpringConfigB::class})
class SpringConfigParent {}

Попробуйте 3, ошибка: Type inference failed. Expected type mismatch: inferred type is Array<KClass<out Any>> but KClass<*> was expected

@Import(arrayOf(com.example.SpringConfigA::class, com.example.SpringConfigB::class))
class SpringConfigParent {}    

Ответы [ 2 ]

2 голосов
/ 20 сентября 2019

Вам не хватает .class в конце имени класса:

@Import({com.example.SpringConfigA::class, com.example.SpringConfigB::class})
class SpringConfigParent {}

Я обновил ответ, благодаря eamon-scullion

1 голос
/ 20 сентября 2019

Синтаксис для нескольких импортов с одной аннотацией следующий:

@Import(value = [Config1::class, Config2::class])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...