Сигнатура функции Java Vararg в файле класса - PullRequest
1 голос
/ 21 сентября 2019

Java-код:

public void foo(Object[] args) {}

дизассемблированная подпись из файла класса:

  public void foo(java.lang.Object[]);
    Code:
       0: return

Java-код:

public void foo(Object... args) {}

дизассемблированная подпись из файла класса:

  public void foo(java.lang.Object...);
    Code:
       0: return

Таким образом, файл класса сохраняет разницу.

Возможно, исходная строка типа параметра (т.е. Object [] / Object ...) сохранена в файле класса, и javap просто показывает их.

Или, может быть, двоичная сигнатура в файле классов различна, что означает, что varargs - это не просто синтаксический сахар.

Что является правдой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...