【发布时间】:2021-10-09 08:02:31
【问题描述】:
abstract class BaseActivity : AppCompatActivity() {
funNewMessageObserver() {
observable.observe(this, {
onNewMessage(it) //where `it` is a string
}
}
fun onNewMessage(msg : String){
Log.e(TAG, "New Message Parent Method invoked: msg: $msg")
}
} //end of base activity
class ChatActivity : BaseActivity() {
override fun onNewMessage(msg : String) {
Log.e(TAG, "New Message Child Method invoked: msg: $msg")
}
}
我得到什么输出:
调用的新消息父方法:msg:测试消息
我想要什么:
调用的新消息子方法:msg:测试消息
-
我正在观察一个线程,如果收到新消息,我必须在 UI 上显示它
我在基本活动中观察这个线程,因为在每个子活动(21 个活动)中观察,这将是高度冗余且难以管理的。 -
我没有将父方法抽象化以便调用子方法,因为这样每个活动(BaseActivity 的子活动)都必须实现该方法。 我希望方法留在基类中,调用后会有通用操作,然后如果有该方法的任何实现(覆盖),则该数据将传递给子类
现在,我不知道这怎么可能,如果在 Java、Kotlin 的上下文中有可能,请指导。
感谢您的帮助。 :)
【问题讨论】:
标签: java android kotlin oop object-oriented-analysis