Ошибка компиляции Java: Параметр x превышает предел 255 слов

существует способ, которым я обычно использую для использования mxml и сценария действия вместе: Все мои компоненты MXML наследовались классу сценария действия, где я добавляю более сложный код. Затем можно обратиться к слушателям события, реализованным в этом классе в mxml файле.

С уважением,

Ruth

5
задан Jean-François Savard 1 June 2015 в 22:19
поделиться

2 ответа

Что ж, вы нарушаете спецификацию VM, раздел 4.10 :

Число параметров метода равно ограничено 255 по определению дескриптор метода (§4.3.3), где лимит включает одну единицу для этого в случай экземпляра или интерфейса вызовы методов. Обратите внимание, что метод дескриптор определяется в терминах понятие длины параметра метода в который параметр типа long или double добавляет две единицы к length, поэтому параметры этих типов еще больше уменьшить лимит.

Я предлагаю вам преодолеть препятствия при изменении сгенерированного кода ... Честно говоря, я очень удивлен, что это работает в Linux. Я не был бы полностью удивлен, если байт-код, который он сгенерировал, был строго недействительным, и он просто работает на вас в данный момент.

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

16
ответ дан 18 December 2019 в 08:29
поделиться

Ну, спецификация файла класса . говорит:

Дескриптор метода действителен, только если он представляет параметры метода с общей длиной 255 или меньше, где эта длина включает вклад для этого в случае метода экземпляра или интерфейса призывы. Общая длина рассчитывается путем суммирования вклады отдельных параметров, где параметр типа long или double дает две единицы длины и параметр любой другой тип добавляет одну единицу.

1
ответ дан 18 December 2019 в 08:29
поделиться
Другие вопросы по тегам:

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