Открытие объявлений метода перечисления Java в Eclipse

1

Eclipse предоставляет функцию для открытия деклараций полей, вызванных методов и т.д.

(F3 или Правый щелчок => Открыть объявление или Ctrl + клик по вызываемому методу)

Однако в случае методов перечисления эта функция не работает, например MyEnum.values(); называется где-то в моем коде, и попытка открыть объявление values() с указанными выше комбинациями не работает.

Почему Eclipse не открывает объявление таких методов перечисления?

Теги:
enums

1 ответ

3
Лучший ответ

Почему Eclipse не открывает объявление таких методов перечисления?

Потому что они вообще не объявлены в исходном коде. Они автоматически предоставляются компилятором - где вы ожидаете, что вас возьмут? Ctrl-щелчок на MyEnum (а не метод values()) должен открыть переименование без проблем.

Из раздела 8.9.3 JLS:

Элементы перечисления типа E являются следующими:

  • ...
  • Следующие неявно объявленные методы:

    /* javadoc... */
    public static E[] values();
    
    /* javadoc... */
    public static E valueOf(String name);
    

Обратите внимание, что обычные методы "перейти к декларации" должны работать для любых методов, которые действительно существуют в исходном коде.

  • 0
    Спасибо за ответ. Конечно, объявление MyEnum открывается без проблем. Я не знал, что методы enum не объявлены в исходном коде. Можете ли вы указать другой код, предоставляемый компилятором в Java, кроме перечислений, пожалуйста?
  • 0
    @Juvanis: Не так много - конструкторы без параметров приходят на ум, и вложенные классы могут включать в себя некоторый синтез для распространения включающего члена, предоставления доступа к закрытым членам и т. Д.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню