Позднее связывание/разрешение с помощью jvm помогает предотвратить нарушение кода текущего метода для изменений в классе, который он использует.

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

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


person user2491441    schedule 16.06.2013    source источник


Ответы (1)


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

Он не охотно проверяет все привязки при запуске.

person Peter Lawrey    schedule 16.06.2013
comment
Но если метод нигде не используется, изменение его сигнатуры или его существования никак не повлияет на код. Тогда как возникает картина позднего связывания, предотвращающая поломку кода. Когда в таком случае, даже если привязка разрешена для этого метода, хотя это было бы бесполезно, но все же этот метод никогда не будет вызываться откуда угодно, что не приведет к поломке кода. Это небольшой парадокс. Может ли быть какой-либо другой сценарий, в котором эта строка могла бы иметь больше смысла и быть полезной? - person user2491441; 11.08.2013
comment
Можешь перефразировать свой вопрос? Я не уверен, что вас беспокоит. - person Peter Lawrey; 11.08.2013