У меня есть следующий код в моем классе Kotlin:
Mono.just("banana").subscribe({
println(it)
})
IntelliJ IDEA говорит мне, что переменная "it" в этом случае имеет тип "String!" (см. скриншот).
Я не уверен, что это проблема с Kotlin, IntelliJ IDEA или Reactor, но согласно документации Project Reactor он должен иметь нулевые аннотации, а класс Mono не допускает нулевые значения быть переданным.
Я использую Kotlin версии 1.3.31 и в моем pom.xml есть следующее:
<build>
<sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
<testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<configuration>
<args>
<arg>-Xjsr305=strict</arg>
</args>
<compilerPlugins>
<plugin>spring</plugin>
</compilerPlugins>
</configuration>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-allopen</artifactId>
<version>1.3.31</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
Итак, мой вопрос: почему переменная "it" типа "String!" а не "Строка"?