Что означает typedef A (* AF) ()?

Чтобы решить центральный вопрос об окончательном объекте, я думаю, что это предложение из спецификации более актуально:

Определение постоянного значения имеет форму final val x = e, где e является постоянным выражением (§6.24). Последний модификатор должен присутствовать, и аннотация типа типа не может быть задана. Ссылки на постоянное значение x сами рассматриваются как постоянные выражения; в сгенерированном коде они заменяются правой частью e.

. Значение:

  • Аннотации типа не могут быть заданы
  • Выражение e используется в сгенерированном коде (моим чтением, как исходным неоцененным постоянным выражением)

Мне кажется, что компилятор требуется спецификацией для использования этих больше похоже на замену макросов, а не на значения, которые оцениваются на месте во время компиляции, что может повлиять на результат выполнения кода.

Я думаю, что особенно интересно, что аннотация типа типа не может быть задана.

Это, я думаю, указывает на наш окончательный ответ, хотя я не могу придумать пример, показывающий разницу во времени для этих требований. Фактически, в моем интерпретаторе 2.9.2 я даже не получаю принудительное выполнение первого правила.

13
задан Dan Bron 11 August 2015 в 17:47
поделиться