Kotlin多态性,默认值为参数

问题描述 投票:0回答:1

您好,我是Kotlin的新手,我想使用默认参数设置2个Polymorphique类,但它似乎不起作用。这是我的代码:

private fun add(request: Request, share: Boolean = false, number : Int){
   Do something ... 
}
private fun add(key: String, share: Boolean = false){
   Do something ... 
}

所以这是我的2个功能,请求是OKHTTP请求,但它不起作用。既工作又编译。但是我的问题是我无法使用默认值,因为编译器似乎无法推断出默认值。

add(request,  number)

[执行此操作时,这意味着我想将第一个函数与布尔值的默认值一起使用,我收到一条错误消息,指出它需要字符串并找到了请求。

我认为编译器与默认值和多态性混淆,它似乎不知道要使用哪个女巫函数。是否有任何方法可以解决此问题,或者每次使默认值无用时我都必须显式声明默认值吗?

kotlin polymorphism default-value
1个回答
1
投票

将具有默认值的参数移动到第一个函数的第3位,使其变为

private fun add(request: Request, number : Int, share: Boolean = false){ Do something ...

它将起作用。

© www.soinside.com 2019 - 2024. All rights reserved.