Я использую JDK1.6. Когда я реализую интерфейс и в реализующем классе, если я передам @override
перед именами своих функций, Eclipse выдает ошибку компиляции. то есть приведенный ниже код неверен в соответствии с Eclipse.
public class SomeListener implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent arg0) {
// code
}
/* other overridden methods here */
}
Если я удаляю аннотацию @Override
, то код компилируется нормально. Означает ли это, что JDK1.6 больше не требует от нас префикса аннотации @override
?
Похоже, ваш компилятор настроен для Java 5, когда @Override
на интерфейсах не разрешалось.
Нет, аннотация @Override по-прежнему используется. Вы должны проверить, что метод contextDestroyed
действительно присутствует в интерфейсе ServletContextListener
, и проверить импортированный пакет на наличие этого интерфейса.