为什么我应该在没有代码时调用超级
问题描述:
当我看着AppCompatActivity.java来研究API 我发现onSupportActionModeStarted()需要重写方法来调用super.method(),即使没有代码。你有什么线索吗?为什么我应该在没有代码时调用超级
/**
* Notifies the Activity that a support action mode has been started.
* Activity subclasses overriding this method should call the superclass implementation.
*
* @param mode The new action mode.
*/
@Override
@CallSuper
public void onSupportActionModeStarted(@NonNull ActionMode mode) {
}
答
今天,没有什么onSupportActionModeStarted()
在AppCompatActivity
。通过添加@CallSuper
,谷歌说“将来我们可能会在这里放置代码,所以请通过超类实现,以便您的应用程序在未来不会中断”。
在子类中实现AppCompatCallback清除了类的意图,很容易看出重写的方法属于哪里,所以我想知道为什么AppCompatActivity实现它。根据受访者的意见,您可能认为开发人员可能会在下一个平台上使用AppCompatCallback,因此不需要复杂的工作。但这也会影响班级的清晰度。最后,业务的连续性比代码的清晰度更重要。 –