gpt4 book ai didi

constructor - 在 Kotlin 中匿名实现接口(interface)导致 "has no constructors"错误

转载 作者:IT老高 更新时间:2023-10-28 13:47:33 26 4
gpt4 key购买 nike

我正在尝试在 Android 中使用 SurfaceView 来保存相机预览。文档告诉我,我需要在表面支架的 surfaceCreated 回调中调用 startPreview。我正在尝试像这样设置回调

this.surface!!.holder!!.addCallback(SurfaceHolder.Callback() {
fun surfaceChanged(holder: SurfaceHolder, format: Int,
width: Int, height: Int) {

}

fun surfaceCreated(holder: SurfaceHolder) {

}

fun surfaceDestroyed(holder: SurfaceHolder) {

}
})

但是,我得到了错误:

SurfaceHolder.Callback has no constructors.

我很困惑为什么当这样的事情发生时这不起作用:

Thread(Runnable() {
fun run() {
...
}
})

最佳答案

要创建匿名子类的对象,您需要使用object: expression :

this.surface!!.holder!!.addCallback(object: SurfaceHolder.Callback {
override fun surfaceChanged(holder: SurfaceHolder, format: Int,
width: Int, height: Int) {
...
}

override fun surfaceCreated(holder: SurfaceHolder) {
...
}

override fun surfaceDestroyed(holder: SurfaceHolder) {
...
}
})

不要忘记使用 override 关键字 per 重写方法;)

关于constructor - 在 Kotlin 中匿名实现接口(interface)导致 "has no constructors"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44337252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com