![](/img/trans.png)
[英]Kotlin - any substitute for companion object inside of another object (not class)?
[英]How to call extension object inside companion from another class using kotlin?
我想使用 Exoplayer 制作播放视频,但我对如何访问我的扩展功能有一点问题。
import com.google.android.exoplayer2.ui.PlayerView
class playerViewadapter {
companion object{
fun PlayerView.loadView(){
}
}
}
但是我的AppCompatActivity
loadView
扩展没有显示
class Test:AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.test)
playerViewadapter.loadView()
}
}
如何从我的 AppCompatActivity 调用loadView
您必须在对象的上下文中才能调用它的某些内容。
with(playerViewadapter) { }
或playerViewadapter.apply { }
应该这样做:
例子:
with(playerViewadapter) {
playerView.loadView()
}
为什么要在另一个类的伴生对象中定义扩展函数? 在您拥有PlayerView
的文件中定义它,或者如果它不是您的类,为 utils 函数创建一个新文件不是更好吗?
class PlayerView
{
}
fun PlayerView.loadView()
{
}
然后你可以调用这个函数:
val playerView = PlayerView()
playerView.loadView()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.