【发布时间】:2019-07-30 13:06:23
【问题描述】:
我在一个 Android 项目中与 java 一起编写 Kotlin,我有一个抽象的 Java BaseApplication 类,它有一些静态方法,我的每种风格的 Application 类都扩展了这个 BaseApplication 类(称为 App.kt)并用 Kotlin 编写.我想知道为什么我不能通过 Kotlin 代码中的 App 类访问 BaseApplication 静态函数
public abstract class BaseApplication extends Application {
public static void staticFunction(){
Log.d("TAG", "some log...");
}
}
public class App : BaseApplication() {
fun doSomething(){
Log.w("TAG", "doing something")
}
我可以从 Java 类调用 App.staticFunction(),但不能从 Kotlin 类调用它。难道我做错了什么?为什么我不能调用 App.staticFunction() ?有什么不同?
我可以通过 java 做到这一点:
public class JavaTest {
public void main(String[] args) {
App.staticFunction();
}
}
但这(kotlin)给了我编译错误:
class KotlinTest {
fun main(args: Array<String>) {
App.staticFunction() //unresolved reference: static function
}
}
(我知道我可以通过AbstractApplication访问staticFunction,我只想知道为什么我不能通过App类访问它?)
【问题讨论】: