весной mvc (5.1.3) я пытаюсь сделать:
val url : String? = null
val matcher: ResultMatcher = MockMvcResultMatchers.forwardedUrl(url)
и я получаю ошибку компиляции для второй строки.
из intellij (kotlinc-jvm 1.3.11):
Error:(230, 56) Kotlin: Null can not be a value of a non-null type String
или из Gradle (kotlin 1.2.71):
Type mismatch: inferred type is String? but String was expected
Исходный код Java метода Spring:
/**
* Asserts the request was forwarded to the given URL.
* <p>This method accepts only exact matches.
* @param expectedUrl the exact URL expected
*/
public static ResultMatcher forwardedUrl(String expectedUrl) {
return result -> assertEquals("Forwarded URL", expectedUrl, result.getResponse().getForwardedUrl());
}
intellij отображает javadoc:
org.springframework.test.web.servlet.result.MockMvcResultMatchers @NotNull
@Contract(pure = true)
public static org.springframework.test.web.servlet.ResultMatcher forwardedUrl(@Nullable String expectedUrl)
, так почему компилятору по-прежнему требуется тип, который не может иметь значение NULL, и как обойти это требование?