相关疑难解决方法(0)

使用super在kotlin中扩展功能

如何使用super关键字在派生类中调用基类的扩展函数?

我尝试使用super打电话,但是没有用。

 open class abc {
     open fun aa() {
         println("function in abc")
     }
 }
 fun abc.sum() {
     println("extension function")
 }
 class ab: abc() {

     override fun aa() {
         super.aa()
         println("functon in ab")
     }
     fun sum() {
         super.sum()
         println("sum function")
     }
 }
 fun main(args: Array < String > ) {
     var aa: ab = ab()
     aa.aa()
     aa.aa()
     aa.sum()
 }
Run Code Online (Sandbox Code Playgroud)

这是16号数字错误,我无法调用扩展功能。

kotlin kotlin-extension

2
推荐指数
2
解决办法
555
查看次数

Kotlin扩展功能-覆盖现有方法

是否可以做类似的事情:

/**
 * Converts all of the characters in the string to upper case.
 *
 * @param str the string to be converted to uppercase
 * @return the string converted to uppercase or empty string if the input was null
 */
fun String?.toUpperCase(): String = this?.toUpperCase() ?: ""
Run Code Online (Sandbox Code Playgroud)
  • 这会怎么办?这将使toUpperCasenull安全。
  • 我有什么问题?返回值this?.toUpperCase()表示扩展功能

是重命名扩展功能的唯一选择,还是可以从其中引用“超级”功能?

kotlin kotlin-extension

0
推荐指数
2
解决办法
2180
查看次数

标签 统计

kotlin ×2

kotlin-extension ×2