Привет!

Хочу рассказать вам забавную вещь.

Знаете ли вы, что метод в Java может иметь 255 параметров?

Достаточно много, неправда ли?

Ограничение в 255 параметров определено в спецификации JVM.

Для тех, кто не хочет залезать в спецификацию, можно прочитать разъяснение здесь.

«Постойте, скажете вы. Неужели я ошибся блогом? При чем здесь Java?».

Хорошо, оставим Java и вернемся к нашему ламповому ABAP’у.

Хотите узнать сколько параметров можно передать в метод в ABAP’е?

Что ж, не знаю как вы, а я был слегка удивлен, когда узнал, что в ABAP’е нет ограничения на количество параметров метода.

В ABAP есть ограничение на длину команды, которое равно 28672 байта. В 16-тиричной системе счисления это 0x7000.

Это означает, что от начала команды и до точки должно быть не больше 28672 символов. Таким образом, число параметров в методе ограничено только этим.

Почему именно 28672 (0x7000) я, к сожалению, не нашел. Есть только такая нота: 635318 — Open SQL: Size restrictions for commands.

Если кто-нибудь знает больше, напишите в комментариях, будет интересно.

А если кто хочет проверить это ограничение на практике, то можете скопировать класс с методом отсюда.

У метода 2000 параметров и надо cказать это не предел. Каков предел на самом деле, в этой статье я не сказал. Напишите свой результат в комментариях, а пока, будем считать этот вопрос открытым. Также, можете написать, как обстоят дела в других языках.

Разумеется, практической пользы от метода с таким большим количеством параметров абсолютно нет. Это всего лишь любопытный факт.

На этом все!

Не болейте и подписывайтесь на канал в Telegram. :^)

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.