2013-07-27 5 views
0

Мне интересно, какие преимущества привносят методы по умолчанию в Java 8 против методов расширения или неявного преобразования, например, в Scala? Похоже, что я не мог модифицировать существующий код с помощью методов по умолчанию из внешней библиотеки, и это странно.почему java 8 использует методы по умолчанию вместо методов расширения

ответ

4

Потому что это цель - полная противоположность используемого вами варианта использования. Способы по умолчанию позволяют библиотечному коду изменять свой API, не требуя изменения кода вызова. & перекомпилирован. Это всего лишь инструмент для поддержки совместимости с API & ABI, это не инструмент для переопределения деталей реализации стороннего кода.

+0

Спасибо. Но я не мог понять причину этого. Почему они ограничились таким небольшим усовершенствованием? – aim

+0

Ну, на самом деле это не так * объяснено * где-нибудь, о чем я знаю (по крайней мере, исходные спецификации JSR не распространяются на какое-либо обоснование этого поведения). Однако я полагаю, что причина в том, что это гораздо менее инвазивное изменение по сравнению с Java 7, и поэтому проще реализовать и получить одобрение. – user268396

Смежные вопросы