Вопрос

Вы бы рассмотрели AutoBoxing в Java в форме полиморфизма? Поместите еще один способ, как вы думаете, Autoboxing расширяет полиморфные возможности Java?

Как насчет неявных преобразований в Scala?

Мое мнение состоит в том, что они оба примеры полиморфизма. Обе функции позволяют значения различных типов данных одновременно обрабатываться единым образом.

Мой коллега не согласен со мной. Кто прав?

Это было полезно?

Решение

От Википедия:

Полиморфизм подтипа, почти универсально называемый просто полиморфизмом в контексте объектно-ориентированного программирования, является способность одного типа A, отображаться как и использоваться как другой тип, B.

Неявные преобразования в Scala являются преобразованиями. Один объект превращается в другой объект.

AutoBoxing - это создание объекта (опять же, преобразование).

Следовательно, это не полиморфизм.

Другие советы

Я лично рассмотрим автообкинг как рода взлома иногда неожиданными результатами.

 Boolean b = null;
 boolean b2 = b; // oops

Сложная часть Autoboxing состоит в том, что она на самом деле не является актером, который (только) изменяет тип, но и больше преобразования стоимости.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top