О аннотации @override в обратных вызовах Activity - PullRequest
2 голосов
/ 13 февраля 2012

Это похоже на Activity , например, метод onCreate(), это не имеет большого значения, если у меня есть аннотация @Override или нет.Они оба работают.(Пока я вызываю super.onCreate() внутри обратного вызова, он будет вызывать метод родительского класса.)

Может кто-нибудь сказать мне, почему нам нужна аннотация @Override для обратных вызовов жизненного цикла в Activity ?

Я спрашиваю об этом, потому что я протестировал без аннотации @Override, мое приложение все еще успешно работает.

Ответы [ 3 ]

11 голосов
/ 13 февраля 2012

Это больше похоже на хорошую практику разработки.

Если по ошибке вы захотите переопределить метод, который не существует в суперклассе (или реализован интерфейс), вы получите ошибку.

Подумайте, что вы хотите переопределить "onCreate", но вы неправильно написали его и написали "onCreatee". С этой аннотацией вы получите ошибку. Без этого вы бы потратили много времени, пытаясь понять, почему ваш метод инициализации не работает должным образом.

1 голос
/ 13 февраля 2012

Некоторые уже упоминали, что очень полезно выявлять потенциальные ошибки с ошибочно написанными именами.

Я хотел бы добавить, что это также показывает , какие методы являются новыми методами, специфичными для вашего класса, а какие наследуются от родительского класса (или интерфейса). Возможно, это звучит немного, но лично я нахожу это очень полезным.

Таким образом, вы всегда должны использовать @Override и настраивать IDE, чтобы помечать ошибку, если вы ее забудете.

1 голос
/ 13 февраля 2012

Аннотация @Override используется только для того, чтобы сообщить компилятору, что мы переопределяем метод в нашем коде. Это используется в целях безопасности, чтобы дать компилятору знать цель нашей функции (то есть переопределить), и если мы случайно перегружаем функцию, компилятор выдаст ошибку. Следовательно, с помощью этой аннотации мы можем легко обнаружить ошибки перегрузки.

...