Classes and Interfaces
The Spring Framework supports various Kotlin constructs, such as instantiating Kotlin classes through primary constructors, immutable classes data binding, and function optional parameters with default values.
Kotlin parameter names are recognized through a dedicated KotlinReflectionParameterNameDiscoverer
,
which allows finding interface method parameter names without requiring the Java 8 -parameters
compiler flag to be enabled during compilation. (For completeness, we nevertheless recommend
running the Kotlin compiler with its -java-parameters
flag for standard Java parameter exposure.)
You can declare configuration classes as top level or nested but not inner, since the later requires a reference to the outer class.