Да, последняя строка является оператором приведения. У кастинга есть стоимость, связанная с этим, но она незначительна по сравнению со стоимостью сериализации. Я сомневаюсь, что это даже появилось бы на профилировщике.
Подумайте, что включает в себя сериализация.
- Обработка потока байтов
- Создание типов на основе информации метаданных
- Преобразование между байтовыми массивами и типами данных
Любая из этих операций значительно дороже одной операции приведения.
РЕДАКТИРОВАТЬ Относительно того, почему вообще требуется литье.
Здесь есть несколько причин. Во-первых, API десериализации не имеют возможности узнать, какой тип потока байтов, прежде чем он его осмотрит. Таким образом, единственный выбор, который API имеет с точки зрения типа возврата в метаданных, - это Object.
Во-вторых, десериализация должна поддерживать буквально любой сериализуемый тип. Для функционирования он должен выбрать тип возврата для метода, который применим ко всем типам, которые могут быть сериализованы. Единственный доступный тип, который соответствует этому объекту.