В любое время, когда мне нужно повторно импортировать мои проекты в Eclipse (если я переустановил Eclipse или изменил расположение проектов), почти все мои переопределенные методы не отформатированы правильно, вызывая ошибку:
Метод должен переопределить метод суперкласса
Стоит отметить, что по каким-то причинам это касается проектов Android, значения аргументов метода не всегда заполняются, поэтому мне приходится заполнять их вручную. Например:
list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
//These arguments have their correct names
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
}
});
будет изначально заполнен так:
list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
//This methods arguments were not automatically provided
public void onCreateContextMenu(ContextMenu arg1, View arg2,
ContextMenuInfo arg3) {
}
});
Странно то, что, если я удаляю свой код, и Eclipse автоматически воссоздает метод, он использует те же имена аргументов, которые у меня уже были, поэтому я не знаю, где проблема, за исключением того, что он автоматически форматирует метод для меня.
Это становится большой болью, когда приходится вручную воссоздавать ВСЕ мои переопределенные методы вручную. Если кто-то может объяснить, почему это происходит или как это исправить. Я была бы очень рада.
Может быть, это связано с тем, как я форматирую методы, которые находятся внутри аргумента другого метода?
Ответы:
Eclipse по умолчанию установлен на Java 1.5, и у вас есть классы, реализующие методы интерфейса (которые в Java 1.6 могут быть аннотированы
@Override
, но в Java 1.5 могут применяться только к методам, переопределяющим метод суперкласса).Перейдите к настройкам вашего проекта / IDE и установите уровень компилятора Java равным 1.6, а также убедитесь, что вы выбрали JRE 1.6 для запуска вашей программы из Eclipse.
источник
С Eclipse Galileo вы идете в пункт меню Eclipse -> Preferences, затем выбираете Java и Compiler в диалоговом окне.
Теперь он все еще может показывать уровень соответствия компилятора на уровне 1.6, но вы все еще видите эту проблему. Итак, теперь выберите ссылку « Конфигурировать специфичные для проекта параметры ... », и там вы увидите, что для проекта установлено значение 1,5, теперь измените его на 1,6. Вам нужно будет сделать это для всех затронутых проектов.
Этот византийский интерфейс меню / диалога является типичным для плохого дизайна пользовательского интерфейса Eclipse.
источник
В случае, если это случится с кем-то еще, кто попробовал и alphazero и метод Пола и все еще не работал.
Для меня Eclipse каким-то образом «кэшировал» ошибки компиляции даже после выполнения Project> Clean ...
Мне пришлось снять флажок «Проект»> «Автоматически построить», затем выполнить «Проект»> «Очистить» и затем выполнить сборку заново.
Также, если есть сомнения, попробуйте перезапустить Eclipse . Это может исправить множество неловких, необъяснимых ошибок.
источник
Чтобы решить эту проблему, перейдите в Свойства вашего проекта -> Компилятор Java -> Выберите уровень соответствия компилятора до 1.6-> Применить.
источник
Ответ Пола сработал для меня частично. У меня все еще была одна ошибка тогда. Итак, в дополнение к этому, мне также нужно было перейти в Properties-> Project Facets и там установить версию Java от 1.5 до 1.6.
Может быть, это помогает.
источник
Ребята, в моем случае ни одно из вышеприведенных решений не сработало.
Мне пришлось удалить файлы в рабочей области проекта:
И папка:
Затем я скопировал те из аналогичного проекта, который работал раньше. Это удалось исправить мой сломанный проект.
Конечно, не используйте этот метод, прежде чем пытаться использовать предыдущие альтернативы!
источник
Если ничего из вышеперечисленного не помогает, убедитесь, что выбрана правильная « среда выполнения », а не «альтернативная JRE».
Быть найденным под:
Выберите
JRE System Library
и нажмитеEdit...
.Если выбран «Альтернативный JRE ...», измените его на подходящую «Среду исполнения», например
JavaSE-1.8 (jre1.8.0_60)
. Не знаю почему, но это решит это.источник
Это мой второй раз сталкиваюсь с этой проблемой. в первый раз по рекомендации альфазеро это сработало. но во второй раз я установил на 1.6, он не работает, как «CACHE», эта ошибка после очистки и перестройки.
Попробуйте отключить «Автоматически строить», как сказал Rollin_s -> ошибка все еще здесь!
Поэтому я удалил проблемный проект (уже установлен на 1.6) из Package Explorer и импортировал его снова -> он начал перестройку и на этот раз без ошибок
Надеюсь, это поможет кому-то
источник
Исправление должно переопределить ошибку метода суперкласса. Это не сложно, вам просто нужно изменить исходную версию Java на 1.6, потому что из Java 1.6 аннотацию @Override можно использовать вместе с методом интерфейса. Чтобы изменить исходную версию на 1.6, выполните следующие действия:
источник
В моем случае эта проблема возникла, когда я импортировал проект Maven в Eclipse. Чтобы решить эту проблему, я добавил следующее
pom.xml
:Затем в контекстном меню проекта перейдите в «Maven -> Обновить проект ...» и нажмите ОК.
Вот и все. Надеюсь это поможет.
источник
В моем случае ни одно из вышеприведенных решений не работает. Я должен оформить исходный код в другой папке. В eclipse выберите «Файл»> «Переключить рабочие пространства»> «Другие», а затем импортируйте код в новые рабочие области. это работает после этого.
источник
Это происходит, когда ваш проект maven использует другой уровень соответствия компилятору, а Eclipse IDE использует другой уровень соответствия компилятора. Чтобы это исправить, нам нужно изменить уровень соответствия компилятора проекта Maven на уровень использования IDE.
1) Чтобы увидеть уровень соответствия Java Compiler использует в Eclipse IDE
*) Окно -> Настройки -> Компилятор -> Уровень соответствия компилятора: 1,8 (или 1,7, 1,6 и т. Д.)
2) Изменить уровень соответствия Java Compiler проекта Maven
*) Перейдите в «Проект» -> «Свойства» -> Выберите «Компилятор Java» -> Изменить уровень соответствия компилятора: 1,8 (или 1,7, 1,6 и т. Д.)
источник