Это потому, что у вас есть класс с именем exception
(строчная буква "e") в пакете a.b.c
и пакет с именем a.b.c.exception
.
Это вызывает конфликт имен, потому что если у вас есть код a.b.c.exception.doSomething();
- значит ли это, что вы хотите вызвать статический метод doSomething()
в классе a.b.c.exception
? Или это означает, что есть класс с именем a.b.c.exception.doSomething
, из которого вы пытаетесь вызвать конструктор?
Придерживайтесь соглашений об именах Java - упаковывает все строчные буквы, классы, начинающиеся с заглавных букв и верблюжий - после - и вы никогда не увидите эту проблему.
========== ========== EDIT
Это единственная законная причина, по которой эта ошибка должна появляться ...
Это не обязательно должно быть непосредственно в вашем проекте, это может быть другой проект или библиотека, от которых зависит ваш проект. Это должно показать вам все вхождения класса в любом месте пути сборки или вашего проекта: нажмите кнопку Поиск фонарика на панели инструментов Eclipse -> Выберите «Поиск Java» -> введите исключение в поле поиска -> выберите «С учетом регистра» - > выберите «Тип» в «Поиск» -> убедитесь, что для «Поиск в» выбраны все параметры.
Используете ли вы какие-либо инструменты, которые генерируют классы? Могут ли они поместить их в каталог сборки вашего проекта? Когда вы видите ошибку, если вы идете в каталог сборки проекта и заходите в каталог a / b / c /, вы видите файл .class для «исключения»?
Конечно, в Eclipse вообще может быть ошибка (хотя я ожидаю, что в Eclipse 3.4 будет отчет об ошибке, и вы сможете найти больше жалоб, если это будет ...), ваша установка Eclipse может быть каким-то образом поврежден (Может ли кто-нибудь еще открыть ваш проект в Eclipse 3.4? Не могли бы вы выполнить чистую установку Eclipse 3.4 в другой каталог? Есть ли там ошибка?), или ваш проект может быть испорчен каким-либо образом (Создайте новый проект без каких-либо зависимостей, кроме JDK, создайте пакет abcexception в вашем новом проекте, создайте класс в вашем проекте для import a.b.c.exception.*;
и посмотрите, происходит ли ошибка.).