关于Activity回调中的@override注释

时间:2012-02-13 16:30:32

标签: java android android-layout android-intent annotations

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

有人可以告诉我为什么我们需要在活动中对生命周期回调进行@Override注释?

我问这个是因为我测试时没有@Override注释,我的应用仍然成功运行。

3 个答案:

答案 0 :(得分:11)

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

如果您想要覆盖超类(或实现的接口)中不存在的方法,那么您将收到错误。

认为你想要覆盖“onCreate”,但你拼错它并写上“onCreatee”。使用该注释,您将收到错误。没有它,你最终会花费大量时间来理解你的初始化方法无法正常工作的原因。

答案 1 :(得分:1)

@Override注释仅用于告诉编译器我们正在覆盖代码中的方法。这用于安全目的,让编译器知道我们的函数的目标(即覆盖),如果我们任何机会重载函数,编译器将返回错误。因此,通过这个注释,我们可以轻松地检测到重载错误。

答案 2 :(得分:1)

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

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

因此,您应该始终使用@Override并配置IDE以在忘记错误时标记错误。