Я использую простую версию Kotlin 1.3.Мой фрагмент кода:
import org.springframework.http.HttpStatus
import org.springframework.web.bind.annotation.*
@RestController
@RequestMapping("fields")
class FieldsController(private val fieldService: FieldService) {
@GetMapping
fun index() = fieldService.all()
@PostMapping
@ResponseStatus(HttpStatus.CREATED)
fun create(@RequestBody field: Field) = fieldService.add(field)
@GetMapping("{id}") // Тут мы говорим что это GET запрос с параметром в url (http://localhost/products/{id})
@ResponseStatus(HttpStatus.FOUND)
fun read(@PathVariable id: Int) = fieldService.get(id) <-- error
@PutMapping("{id}")
fun update(@PathVariable id: Int, @RequestBody field: Field) = fieldService.edit(id, field)
@DeleteMapping("{id}")
fun delete(@PathVariable id: Field) = fieldService.remove(id)
}
Итак, ошибка в get, ошибка выглядит следующим образом:
Неразрешенная ссылка.Ни один из следующих кандидатов не применим из-за несоответствия типов получателей: @InlineOnly общедоступный встроенный оператор fun <@OnlyInputTypes K, V> Map.get (key: Int): ???определено в kotlin.collections @SinceKotlin публичный оператор fun MatchGroupCollection.get (name: String): MatchGroup?определено в kotlin.text
Моя сборка Gradle:
plugins {
id 'org.jetbrains.kotlin.plugin.jpa' version '1.3.21'
id 'org.springframework.boot' version '2.1.3.RELEASE'
id 'org.jetbrains.kotlin.jvm' version '1.3.21'
id 'org.jetbrains.kotlin.plugin.spring' version '1.3.21'
}
apply plugin: 'kotlin-jpa'
apply plugin: 'io.spring.dependency-management'
group = 'ru.playa.common'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-data-rest'
implementation 'org.springframework.boot:spring-boot-starter-jersey'
implementation 'io.springfox:springfox-swagger2:2.9.2'
implementation 'io.springfox:springfox-swagger-ui:2.9.2'
implementation 'com.fasterxml.jackson.module:jackson-module-kotlin'
implementation 'org.jetbrains.kotlin:kotlin-reflect'
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
runtimeOnly 'org.postgresql:postgresql'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
dependencies {
compile("org.springframework:spring-context:4.1.6.RELEASE")
}
compileKotlin {
kotlinOptions {
freeCompilerArgs = ['-Xjsr305=strict']
jvmTarget = '1.8'
}
}
compileTestKotlin {
kotlinOptions {
freeCompilerArgs = ['-Xjsr305=strict']
jvmTarget = '1.8'
}
}