Что ж, с помощью метода проб и ошибок я, похоже, решил проблему. У меня был файл, который выглядел «похожим» на это:
import Test.TestObserver;
import com.myself.ImportedClassThatCouldntBeFound;
class Test extends ImportedClassThatCouldntBeFound {
public interface TestObserver {
public void event ();
}
public void addObserver (TestObserver observer) {
...
}
}
public class AnotherTest {
private Test test = new Test ();
public void blah () {
this.test.addObserver (new TestObserver () {
public void event () {
...
}
});
}
}
Проблема произошла в верхней части файла. По какой-то причине Eclipse импортировал внутренний интерфейс!
Когда я «УДАЛЁЛ» этот импорт, а затем изменил AnotherTest на:
public class AnotherTest {
private Test test = new Test ();
public void blah () {
this.test.addObserver (new Test.TestObserver () {
public void event () {
...
}
});
}
}
правильно скомпилировано! Я даже проверил это, поместив BACK импорта в файл и удалив полностью объявленное имя интерфейса, и это снова привело к сбою! Это определенно одна из самых сумасшедших проблем компилятора, которые я когда-либо видел, и как только я вернусь к ЧЕТЫРЕМ ЧАСАМ моей жизни, которые я потерял, исследуя это, я проведу дополнительное расследование, почему это происходит.
Это будет первый раз, когда я сделаю это в StackOverflow, но я собираюсь пометить это как решение, потому что оно определенно было проблемой. Тем не менее, это определенно требует дополнительных исследований (по крайней мере, с моей стороны), чтобы попытаться понять, что заставило компилятор запутаться.
отредактировал это, чтобы показать, что класс с внутренним интерфейсом расширяет класс, который не может быть найден при компиляции