Kotlin中使用子类寻址时基类中定义的接口的未解析引用



嗨,我正在尝试寻址一个接口"回叫测试";它是在我的AudioBase.java中使用继承了AudioBase.jar的AudioChild.java定义的。但在尝试这样做时,它会给出未解析引用的编译错误。

以下是我的类定义:

AudioBase.java

package com.testapp.kotlinexample.classes;
public class AudioBase {
public interface CallbackTest {
void onCall(int var1);
}
}

儿童课堂AudioChild.java

package com.testapp.kotlinexample.classes;
import android.util.Log;
public class AudioChild extends AudioBase{
private static final String TAG = "AudioChild";
public void someOtherMethod() {
Log.i(TAG, "in someOtherMethod()");
}
}

主要活动.kt

import android.content.Context
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import com.testapp.kotlinexample.classes.AudioChild

class MainActivity : AppCompatActivity() {
private val TAG = "TestApp"
private var mContext: Context? = null
private val stateCallback =
AudioChild.CallbackTest { // Compilation error on this line
Log.i(TAG, "onCall:() called")
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
mContext = applicationContext
}
}

当我使用AudioChild.CallbackTest时,我得到以下编译错误:

未解析的引用:回调测试

有人能帮我理解为什么会出现这个错误吗?

我不是kotlin方面的专家,但我了解java,并在谷歌上搜索了一些:

Kotlin:我如何才能创建一个";静态";可继承功能?

静态方法(似乎是类/接口定义(不是继承的。

基本上只继承实例(非静态(成员。所有静态引用的(基于类的(都必须使用它们在中定义的类前缀

在这种情况下:

private val stateCallback =
AudioBase.CallbackTest { 
Log.i(TAG, "onCall:() called")

最新更新