Синтетические и неявные параметры - PullRequest
0 голосов
/ 06 февраля 2019

В Java рефлексия: в чем разница между синтетическим и неявным параметрами?

У меня естьПрошел этот урок по Oracle: https://docs.oracle.com/javase/tutorial/reflect/member/methodparameterreflection.html#implcit_and_synthetic, и это приводит меня в замешательство, когда я различаю синтетические с неявными параметрами

Всякий раз, когда параметр явно создан, он неявный не так ли?Если да, то справедливо ли рассматривать синтетические параметры как подмножество неявных (что не соответствует истине, приведенной в предыдущем уроке)?

1 Ответ

0 голосов
/ 06 февраля 2019

Всякий раз, когда параметр явно создан, он неявный , не так ли?
NO.
Справедливо ли считать синтетические параметры как подмножество неявные ?
NO.

неявные методы и параметры не указаны в исходном коде.Они генерируются компилятором, потому что JLS (спецификация языка Java) диктует это.В документе Oracle упоминается конструктор по умолчанию без аргументов, который создается для классов, у которых нет явного конструктора (т. Е. Тот, который определен в исходном коде).Другой пример - конструктор по умолчанию для вложенного нестатического класса, который генерируется с одним аргументом - ссылкой на внешний экземпляр.Таким образом, вложенные классы имеют доступ ко всем переменным и методам внешнего класса.

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

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