不知道为什么,但是我似乎无法返回实现预期接口的数据类。
界面
interface AuthServiceResponse {
val statusCode: Int
val data: AuthServiceResponseData
val errors: List<AuthServiceResponseError>?
}
实施
data class AuthServiceBasicResponse(override var statusCode: Int,
override var data: AuthServiceResponseData,
override var errors: List<AuthServiceResponseError>) : AuthServiceResponse
期望使用AuthServiceResponse接口
@PostMapping
fun loginUser(@RequestParam username: String,
@RequestParam password: String): Mono<AuthServiceResponse> {
return authenticationService.loginUser(username, password)
}
方法,该方法返回实现AuthServiceResponse接口的AuthServiceBasicResponse类
fun loginUser(username: String,
password: String): Mono<AuthServiceBasicResponse> {
...
}
答案 0 :(得分:0)
仅出于完整性考虑,将在此处发布我的解决方案。非常感谢JB Nizet在上面的评论中为我指出了正确的方向。
我没有考虑的是使用泛型时的差异。
通过使用out
关键字,可以在返回值中使用AuthServiceResponse
的子类。
@PostMapping
fun createUser(@RequestParam username: String,
@RequestParam password: String): Mono<out AuthServiceResponse> {
return authenticationService.createUser(username, password)
}
Kotlin团队here有一些很好的解释。
JB Nizet here分享的帖子