У меня очень раздражающая проблема, которую я не могу решить, и я предполагаю, что упускаю что-то действительно прямое, потому что у меня уже есть рабочий код в Java.
По сути, у меня есть это :
class ConfigurationSpecification(
private var list: MutableList<SearchCriteria> = mutableListOf()
) : Specification<Configuration> {
override fun toPredicate(root: Root<Configuration>, query: CriteriaQuery<*>, builder: CriteriaBuilder): Predicate? {
val predicates: MutableList<Predicate> = mutableListOf()
for (criteria in list) {
if (criteria.operation == "EQUALS") {
predicates.add(builder.equal(root.get(criteria.key), criteria.value)) <- NOT WORKING root.get(criteria.key) this is making issue
}
}
return builder.and(predicates[0])
}
}
Код действительно прост, но по какой-то причине Kotlin жалуется на это, я получаю следующую ошибку:
Ошибка: (19, 51) Kotlin: Вывод типа не выполнен: недостаточно информации для вывода параметра Y в fun get (p0: String!): Path! Пожалуйста, укажите это явно.
И это работает java код:
predicates.add(builder.equal(root.get(criteria.getKey()), criteria.getValue())); <- working with Java
Любой опытный Kotlin человек, который знает обходной путь для этой ошибки? Я видел, что у некоторых других людей были подобные проблемы, но я не могу исправить это, основываясь на ответах, которые я видел.