У меня есть перечисление, подобное этому
enum class API : APIInteface {
API_A{
override processApi(toProcess: Any){
return "A"
}
},
API_B{
override processApi(toProcess: Any){
return "B"
}
};
override abstract processApi(toProcess: Any)
}
И APIInteface
только с одним методом processApi(toProcess: Any)
В моем сервисе я хочу объявить поле следующим образом:
@Value("\${api}")
private lateinit var apiDeclaration: APIInteface
И в моем config.yml у меня есть api: API_A
Я знаю, если тип apiDecaration API
, он работает нормально, но мне нужно объявить его как APIInteface. Очевидно, это не сработало, потому что Failed to convert value of type 'java.lang.String' to required type
.
И вот мой вопрос: как я могу определить тип объекта, который он должен создать в этой ситуации?