关于活动回调中的@override注释



Activity中,例如onCreate()方法中,如果我有没有@Override注释,似乎没有太大区别。他们都工作。(只要我在回调中调用super.onCreate(),它就会调用父类的方法。)

有人能告诉我为什么我们需要为活动中的生命周期回调提供@Override注释吗?

我问这个问题是因为我在没有@Override注释的情况下进行了测试,我的应用程序仍然成功运行。

这更像是一种良好的开发实践。

如果您错误地想要覆盖一个在超类(或实现的接口)中不存在的方法,您会得到一个错误。

认为您想要覆盖"onCreate",但您拼错了它并写下了"onCreatee"。使用该注释,您将得到一个错误。如果没有它,您将花费大量时间试图理解为什么初始化方法不能正常工作。

@Override注释只是用来告诉编译器我们正在重写代码中的一个方法。这是为了安全起见,让编译器知道我们函数的目的(即重写),如果我们在任何情况下重载函数,编译器都会返回错误。因此,有了这个注释,我们可以很容易地检测重载错误。

有些人已经提到,用拼写错误的名称捕捉潜在的bug非常有用。

我想补充一点还显示哪些方法是特定于类的新方法,哪些是从父类(或接口)继承的。这听起来可能不多,但我个人觉得它非常有用。

因此,如果您忘记了错误,您应该始终使用@Override并配置IDE来标记错误。

最新更新