嗨,我正在尝试寻址一个接口"回叫测试";它是在我的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")