Ответ 1
Ну, первое, что нужно проверить, очевидно, есть ли у вас другой класс под названием A
в вашем файле или в том же пакете.
Я попытался найти решение, но я нашел, что не знаю, как применить в этой ситуации. Пожалуйста, помогите мне исправить свой код.
package Exercise;
public class Ex11_11 {
public static void main(String[] args) {
A a = new A(3);
}
}
class A extends B { // type A is already defined, A has a red underline
public A (int t) {
System.out.println("A constructor is invoked");
}
}
class B { // type B is already defined, B has a red underline
public B () {
System.out.println("B constructor is invoked");
}
}
Ну, первое, что нужно проверить, очевидно, есть ли у вас другой класс под названием A
в вашем файле или в том же пакете.
Eclipse иногда путается. Если вы выберите Clean
в меню Project
, это может исправить эти ошибки.
У меня была та же проблема. Мой компьютер был удален дистанционно с помощью I.T, и Eclipse не закрывался изящно. Я заметил, что в моем проекте был добавлен дополнительный java файл, который я не добавил. Удалил его, и теперь ошибка исчезла.
Проверьте, сохранены ли все ваши файлы классов. У меня была эта проблема несколько раз: я определяю класс в файле класса, а затем перемещаю его в свой собственный. Java получает подтверждение, потому что он читает из старой версии исходного файла. Как только вы сохраните его с отсутствием определения класса в нем и определите класс в новом файле, все должно быть в порядке.
В вашем проекте у вас может быть тестовый каталог с той же структурой пакета и тем же именем класса (например, скопировано без изменения имени класса в * Test).
В Project- > Clean выберите "Очистить проекты, выбранные ниже", выберите мои проекты и отметьте "Начать сборку сразу" с помощью "Сборка только выбранных проектов".
Тогда проблема будет решена.
Основной причиной этого является то, что где-то в том же пакете вы уже определили класс с именем A. который вызывает тип A, уже определена ошибка.
проверьте, есть ли какой-либо подкласс или внутренний класс с именем A
Если ни одно из вышеперечисленных решений не помогло вам, то возможно, что Build Path испорчен. Когда вы добавляете src в путь сборки, убедитесь, что src отсутствует в списке исключений. Поместите * (подстановочный знак) в список включения и ничего в списке исключений.
Удостовериться
Проект | Строить автоматически
проверено.
Вы добавили еще один проект в путь сборки?
У меня была такая же проблема в моей среде разработки (Eclipse).
Мое приложение Maven потребляло другие приложения. На Eclipse эти проекты были просто добавлены в путь сборки. Один из них имел одинаковую структуру пакета и имя файла класса. В итоге Eclipse считает, что оба физически разных файла находятся в одном каталоге, поскольку структура пакета и имя файла совпадают.
Например, предположим, что есть два файла, как показано ниже:
/Users/uname/home/proj1/com/app/proj/main/java/util/file1.java
и
/Users/uname/home/proj2/com/app/proj/main/java/util/file1.java
и скажем, оба имеют имя пакета
com.app.define.proj.util
Если вы добавите один проект в другой, Eclipse будет считать, что оба файла находятся в одном месте.
Я решил, создав файл JAR из использованного приложения, добавив его в путь сборки и удалив проект Eclipse из пути сборки.