Ошибка Java: Найденный интерфейс …, но класс ожидался

Когда вы пишете x = 0, x является int ... поэтому вы не можете делать x[age1], потому что x - int

34
задан levik 26 February 2009 в 17:14
поделиться

3 ответа

Это происходит, когда Ваш путь к классу во время выполнения отличается, чем Ваш путь к классу времени компиляции.

, Когда Ваше приложение было скомпилировано, класс (названный SomeInterface в Вашем вопросе) существовал как класс.

то, Когда Ваше приложение работает во время компиляции, SomeInterface, существует как интерфейс (вместо класса.)

Это заставляет IncompatibleClassChangeError быть брошенным во время выполнения.

Это - частотность, если у Вас была другая версия файла банки на пути к классу времени компиляции, чем на пути к классу во время выполнения.

71
ответ дан 27 November 2019 в 16:23
поделиться

Скорее всего, код был скомпилирован против класса в библиотеке, которая была тогда изменена на интерфейс в версии, против которой Вы работаете.

6
ответ дан 27 November 2019 в 16:23
поделиться

Это кажется, что Вы сделали

class MyClass extends SomeInterface

, когда это должно на самом деле быть

class MyClass implements SomeInterface

, я исправляюсь?

РЕДАКТИРОВАНИЕ: О, Вы говорите, что это время выполнения ошибка и не время компиляции ошибка? Позвольте мне озираться немного...

РЕДАКТИРОВАНИЕ 2: похоже, что у Jared есть корректный ответ. Так или иначе попытка расширить интерфейс на самом деле дала бы" , никакой интерфейс, ожидаемый здесь " сообщение во время компиляции, не" найденный интерфейсом, но классом, не ожидался " ошибка.

1
ответ дан 27 November 2019 в 16:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: