今天写项目的时候碰到一个问题,按照java的习惯在Kotlin中写出如下代码:
class Outer{
fun fOuter(){
}
class Inner{
fun fInner(){
fOuter()//此处编译失败,无法调用Outer类的方法
}
}
}
如果想在Inner类中调用fOuter()函数,编译是不会通过的,我们习惯在java中使用Outer.this.fOuter()来调用,这个在Kotlin中是行不通的。
其实Kotlin里自带了关于内部类的关键字inner,正确的写法如下:
class Outer{
fun fOuter(){
}
inner class Inner{
fun fInner(){
fOuter()
}
}
}
这样在Kotlin中内部类的方法能调用外部类的方法了